VS Code and Liberty: источник данных, определенный в server.xml, не найден сервером

Вот мой файл 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

Любые советы приветствуются!

Eclipse [IDE] запускает и запускает сервер [приложений] Liberty, верно? Как вы запускаете Liberty, когда пытаетесь запустить приложение из VS Code?

Abra 09.06.2024 12:02

Добавлю к последнему комментарию: как вы запускаете Liberty и как предоставляете конфигурацию server.xml в VS Code? Например. вы используете один из плагинов Liberty Maven/Gradle, чтобы скопировать его из исходного кода вашего проекта?

Scott Kurz 09.06.2024 14:13

В VS Code я установил Liberty Tools из VS Marketplace. Это добавило панель управления Liberty в VS Code. Мой проект веб-приложения автоматически появился на панели управления после установки, и там есть опция «Пуск». Я использую Maven для компиляции файлов Java WAR, а затем из них одного файла EAR. Когда я нажимаю «Пуск» на панели мониторинга, я вижу, как сборка Maven начинается и завершается в консоли. Однако мой файл server.xml никогда не предоставлялся Maven, который занимается только кодом Java.

Onac 09.06.2024 22:34

После первого запуска приложения я заметил, что в папке моего проекта появилась целевая папка, содержащая файл server.xml. Я не понял, откуда был заполнен файл server.xml. Это было очень просто, почти пусто. Однако я подтвердил, что внесение изменений в файл server.xml в этом месте меняет поведение сервера при запуске, поэтому я начал редактировать его здесь.

Onac 09.06.2024 22:35

Похоже, вам не хватает функций jdbc и jndi. Добавьте их в server.xml и посмотрите, изменится ли это.

Gas 10.06.2024 09:40

Добавление функции JNDI не дало никакого эффекта. Добавление JDBC решило проблему. Спасибо!

Onac 10.06.2024 10:19

Я просто хотел рассказать немного о том, откуда взялся файл server.xml, который появился в целевой папке. Вы можете предоставить файл server.xml в папке src/main/liberty/config вашего проекта, и он будет скопирован. Если ничего не указано, Liberty генерирует файл server.xml по умолчанию при создании сервера. Любые изменения, которые вы вносите в файл в целевой папке, могут быть перезаписаны при запуске других целей сервера или при запуске mvn clean. Вы также можете указать файл server.xml в другом месте с помощью параметра конфигурации плагина serverXmlFile.

CherylKing 11.06.2024 05:17

Привет, Онак, рад узнать, что ты нашел решение этой проблемы! Пожалуйста, рассмотрите возможность ответить на него и принять его в качестве ответа, чтобы изменить его статус на Отвечено. См. [могу ли я ответить на свой вопрос..]( stackoverflow.com/help/self-answer), просто напоминание :)

MingJie-MSFT 12.06.2024 04:21

Включение функции JDBC решило проблему: <feature>jdbc-4.1</feature>

Onac 12.06.2024 15:42
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
9
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Добавление JDBC могло бы решить эту проблему.

<feature>jdbc-4.1</feature>

Другие вопросы по теме