TomEE Embedded: ресурс, определенный в resources.xml, недоступен в веб-приложении - PullRequest
0 голосов
/ 10 июля 2019

В настоящее время я пытаюсь запустить простое веб-приложение на TomEE Embedded (TomEE Version 7.0.5).

В соответствии с документами , я могу запуститьTomEE и разверните classpath как веб-приложение, как это.Я установил базу документов на src/main/webapp.

try (final Container container = new Container(new Configuration())
                                      .deployClasspathAsWebApp("", new File("src/main/webapp"))) {
    container.await();
}

Я определил источник данных в WEB-INF/resources.xml, который выглядит следующим образом:

<Resource id="myDataSource" type="javax.sql.DataSource">
    JdbcDriver org.hsqldb.jdbcDriver
    JdbcUrl jdbc:hsqldb:file:hsqldb
    UserName sa
    Password
</Resource>

И я настроилссылка в web.xml:

<resource-ref>
  <res-ref-name>myDataSource</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
</resource-ref>

Затем я пытаюсь найти этот источник данных в моем сервлете через JNDI.

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  try {
    Context initCtx = new InitialContext();
    DataSource ds = (DataSource) initCtx.lookup("java:comp/env/myDataSource");
    Connection connection = ds.getConnection();    
    ...
}

При запуске TomEE создается впечатление, что мой источник данных создан(по крайней мере, есть некоторые выводы об этом в журналах).Однако когда я пытаюсь найти источник данных в моем сервлете, я получаю ненастроенный пул соединений dbcp2 в качестве источника данных, который выдает следующее исключение при вызове ds.getConnection():

java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2186)
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2066)
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1525)
    at TestServlet.doGet(TestServlet.java:32)
    ...

Та же конфигурация отлично работает наавтономный TomEE (я пробовал TomEE Webprofile) или при использовании плагина TomEE Maven.Что-то мне не хватает, чтобы запустить его также для Embedded TomEE?

Заранее спасибо

...