Websphere liberty 19 настройка источника данных jndi

Я развернул два уха, и к одному из них у меня нет доступа. Есть файл application-web-bnd.xml, где есть ссылка на источник данных

In my server.xml file i have defined datasource

 <application id="MyCustomApp.war" location="F:\programming\source\MyCustomApp\target\MyCustomApp" name="MyCustomApp" type="war">
    <application-bnd>
      <security-role name="admin">
        <special-subject type="ALL_AUTHENTICATED_USERS" />
      </security-role>
      <data-source binding-name="jdbc/Sample" name="java:comp/env/jdbc/db" />
    </application-bnd>
  </application>

  <dataSource id="Sample" jndiName="jdbc/Sample" type="javax.sql.DataSource">
    <jdbcDriver>
      <library name="JdbcJarFiles">
        <fileset dir="${shared.resource.dir}" includes="db2jcc4.jar, db2jcc_license_cisuz.jar, db2jcc_license_cu.jar, pdq.jar, pdqmgmt.jar" />
        <folder dir="${shared.resource.dir}" />
      </library>
    </jdbcDriver>
  </dataSource>

В коде в ухе, где у меня нет доступа, есть initialContext java: comp / env / jdbc / db.

Ссылка на источник данных существует, но источник данных не существует. У меня нет доступа к web.xml для создания справки. Я не знаю, как это переопределить.

Не могли бы вы помочь?

Мое ухо выглядит так:

 <module>
    <ejb>PRE-BF.jar</ejb>
  </module>
  <module>
    <web>
      <web-uri>PRE-WS.war</web-uri>
      <context-root>/PRE-WS</context-root>
    </web>
  </module>
  <module>
    <web>
      <web-uri>PRE-RS.war</web-uri>
      <context-root>/PRE-RS</context-root>
    </web>
  </module>
  <module>
    <web>
      <web-uri>PRE-PF.war</web-uri>
      <context-root>/PRE-PF</context-root>
    </web>
  </module>

person darkstar    schedule 17.10.2019    source источник


Ответы (1)


Вы можете переопределить привязки в конфигурации сервера следующим образом. (Для этого потребуется, чтобы ваше приложение было определено в конфигурации сервера, а не в dropins).

<application location="MyApp.war">
  <web-bnd moduleName="MyApp">
    <resource-ref name="jdbc/Sample" binding-name="java:comp/env/jdbc/db"/>
  </web-bnd>
</application>
person njr    schedule 17.10.2019
comment
В примере было несоответствие между application-bnd и web-bnd, потому что я неправильно читал application-web-bnd.xml как привязки приложения, а не привязки веб-модулей. Обновил для web-bnd - person njr; 18.10.2019
comment
Спасибо. Я не знал, что мы можем это сделать. Где эти знания?;) Дома я создал два военных приложения для тестирования, но в компании у меня два уха. Внутри уха у меня 3 войны. Тем не менее, я должен использовать тег web-bnd? - person darkstar; 18.10.2019
comment
Я предполагаю, что мне следует использовать тег enterpriseApplication в server.xml, но я не знаю, как настроить войны в этом ухе для передачи ссылки на источник данных. - person darkstar; 18.10.2019
comment
Я действительно не знаю, как переопределить ресурсы в ухе - ›войны и банку. Я не знаю, как это сопоставить. Я пробовал выделять комбинации. Я никогда не видел в java: comp / env / jdbc / somekindofsource. Может мне нужно создать какую-нибудь нестандартную фабрику? Есть ли какой-нибудь пример? - person darkstar; 18.10.2019
comment
Для файлов .ear можно использовать <enterpriseApplication> или <application>. Учитывая, что у вас несколько модулей, вам необходимо убедиться, что запись <web-bnd> с соответствующим moduleName указана для каждого из веб-модулей, для которых вы хотите переопределить ссылку на ресурс. То же самое с ejb-jar-bnd и соответствующим moduleName для модулей EJB. Правильный синтаксис может быть немного сложным. Я попробовал переопределить ссылку на ресурс в веб-модуле таким образом, и это сработало для меня, как только я получил правильное имя модуля. - person njr; 22.10.2019
comment
Вот ссылка на документацию центра знаний со списком синтаксиса для указания <web-bnd> или <ejb-jar-bnd> и т. Д. В <application>. Вам нужно будет прокручивать или искать эти подэлементы, потому что список параметров конфигурации, доступных для приложения, довольно длинный, ibm.com/support/knowledgecenter/en/SSAW57_liberty/ - person njr; 22.10.2019