Я пытаюсь настроить источник данных JNDI, который можно использовать при вызове подключаемого модуля Maven Jetty.Я пытаюсь сделать это внешним по отношению к файлу WAR, так что любому, кто позже сможет развернуть наше веб-приложение с Jetty, не придется редактировать файл конфигурации в каталоге WEB-INF WAR.Я создал файл jetty.xml следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
<!-- Atomikos XA aware (but not XA capable) JDBC data source -->
<New id="sbeDataSource" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>jdbc/myDataSource</Arg>
<Arg>
<New class="com.atomikos.jdbc.nonxa.AtomikosNonXADataSourceBean">
.......
</New>
</Arg>
</New>
</Configure>
Затем я сослался на этот файл из плагина Maven следующим образом:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<configuration>
<jettyConfig>config/jetty.xml</jettyConfig>
</configuration>
</plugin>
Однако, когда я пытаюсь запустить веб-приложение черезmvn jetty: run-war Я получаю следующую ошибку:
Embedded error:
Object is not of type class org.mortbay.jetty.webapp.WebAppContext
Если я опускаю элемент верхнего уровня <Configure>
и просто пытаюсь создать новый ресурс JNDI напрямую через:
<New id="sbeDataSource" class="org.mortbay.jetty.plus.naming.Resource">
Тогда я получаю похожую ошибку:
Embedded error:
Object is not of type class org.mortbay.jetty.plus.naming.Resource
Что дает?