Вот мой файл server.xml:
<?xml version = "1.0" encoding = "UTF-8"?>
<server description = "new server">
<!-- Enable features -->
<featureManager>
<feature>json-1.0</feature>
<feature>localConnector-1.0</feature>
<feature>distributedMap-1.0</feature>
<feature>webCache-1.0</feature>
</featureManager>
<!-- To access this server from a remote client add a host attribute to the following element, e.g. host = "*" -->
<httpEndpoint id = "defaultHttpEndpoint"
httpPort = "9080"
httpsPort = "9443" />
<!-- Automatically expand WAR files and EAR files -->
<applicationManager autoExpand = "true"/>
<!--Data Config-->
<library id = "DB2JCC4Lib">
<fileset dir = "C:/Munka/SQLLIB/java_new" includes = "db2jcc4.jar"/>
</library>
<jdbcDriver id = "DB2JDBCDriver" libraryRef = "DB2JCC4Lib" javax.sql.DataSource = "javax.sql.ConnectionPoolDataSource"/>
<connectionManager id = "defaultConnectionManager" maxConnectionsPerThread = "10" purgePolicy = "EntirePool"/>
<dataSource transactional = "false" id = "sss_ha_csn_DS" jndiName = "jdbc/sss_ha_csn_DS" connectionManagerRef = "defaultConnectionManager" jdbcDriverRef = "DB2JDBCDriver" type = "javax.sql.XADataSource">
<properties.db2.jcc databaseName = "SYSSUPT" user = "RETRACTED" password = "RETRACTED" portNumber = "50000" serverName = "localhost"/>
</dataSource>
<!-- Default SSL configuration enables trust for default certificates from the Java runtime -->
<ssl id = "defaultSSLConfig" trustDefaultCerts = "true" />
</server>
В моем приложении есть следующая строка:
DataSource ds = (DataSource) context.lookup(dataBasePoolURLStr);
Приложение правильно устанавливает источник данных, когда я запускаю сервер Liberty из Eclipse. Однако когда я хочу запустить ту же конфигурацию в VS Code, я получаю следующую ошибку:
ERROR com.ibm.esup.css.common.dataaccess.CSSDAOFactory - getDataSource(String): Error = javax.naming.NameNotFoundException: Intermediate context does not exist: jdbc/sss_ha_csn_DS
Любые советы приветствуются!
Добавлю к последнему комментарию: как вы запускаете Liberty и как предоставляете конфигурацию server.xml в VS Code? Например. вы используете один из плагинов Liberty Maven/Gradle, чтобы скопировать его из исходного кода вашего проекта?
В VS Code я установил Liberty Tools из VS Marketplace. Это добавило панель управления Liberty в VS Code. Мой проект веб-приложения автоматически появился на панели управления после установки, и там есть опция «Пуск». Я использую Maven для компиляции файлов Java WAR, а затем из них одного файла EAR. Когда я нажимаю «Пуск» на панели мониторинга, я вижу, как сборка Maven начинается и завершается в консоли. Однако мой файл server.xml никогда не предоставлялся Maven, который занимается только кодом Java.
После первого запуска приложения я заметил, что в папке моего проекта появилась целевая папка, содержащая файл server.xml. Я не понял, откуда был заполнен файл server.xml. Это было очень просто, почти пусто. Однако я подтвердил, что внесение изменений в файл server.xml в этом месте меняет поведение сервера при запуске, поэтому я начал редактировать его здесь.
Похоже, вам не хватает функций jdbc и jndi. Добавьте их в server.xml и посмотрите, изменится ли это.
Добавление функции JNDI не дало никакого эффекта. Добавление JDBC решило проблему. Спасибо!
Я просто хотел рассказать немного о том, откуда взялся файл server.xml, который появился в целевой папке. Вы можете предоставить файл server.xml в папке src/main/liberty/config вашего проекта, и он будет скопирован. Если ничего не указано, Liberty генерирует файл server.xml по умолчанию при создании сервера. Любые изменения, которые вы вносите в файл в целевой папке, могут быть перезаписаны при запуске других целей сервера или при запуске mvn clean. Вы также можете указать файл server.xml в другом месте с помощью параметра конфигурации плагина serverXmlFile.
Привет, Онак, рад узнать, что ты нашел решение этой проблемы! Пожалуйста, рассмотрите возможность ответить на него и принять его в качестве ответа, чтобы изменить его статус на Отвечено. См. [могу ли я ответить на свой вопрос..]( stackoverflow.com/help/self-answer), просто напоминание :)
Включение функции JDBC решило проблему: <feature>jdbc-4.1</feature>




Добавление JDBC могло бы решить эту проблему.
<feature>jdbc-4.1</feature>
Eclipse [IDE] запускает и запускает сервер [приложений] Liberty, верно? Как вы запускаете Liberty, когда пытаетесь запустить приложение из VS Code?