В настоящее время я пытаюсь запустить простое веб-приложение на 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?
Заранее спасибо