Я пытаюсь создать ресурс JNDI для работы с плагином Jetty 9 Maven. Та же конфигурация корректно работает с Jetty 8, но дает java.lang.IllegalStateException: No suitable constructor
с Jetty 9. Здесь находятся соответствующие файлы:Jetty 9 Maven plugin и JNDI без подходящего конструктора
pom.xml:
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>jetty-jndi</artifactId>
<version>1.0</version>
<build>
<plugins>
<plugin>
<!-- <groupId>org.mortbay.jetty</groupId>
<version>8.1.9.v20130131</version> -->
<groupId>org.eclipse.jetty</groupId>
<version>9.0.0.RC0</version>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<webAppConfig>
<jettyEnvXml>src/test/resources/jetty-ds-dev.xml</jettyEnvXml>
</webAppConfig>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.2.9</version>
</dependency>
</dependencies>
</project>
SRC/тест/ресурсы/пристаней-DS-dev.xml :
<?xml version="1.0"?>
<Configure id="Server" class="org.eclipse.jetty.webapp.WebAppContext">
<New id="DSTest" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg>jdbc/test</Arg>
<Arg>
<New class="org.hsqldb.jdbc.JDBCDataSource">
<Set name="DatabaseName">mem:foo</Set>
<Set name="User">SA</Set>
</New>
</Arg>
</New>
</Configure>
и фактическая ошибка:
2013-02-20 10:22:23.464:WARN:oejx.XmlConfiguration:main: Config error at <New id="DSTest" class="org.eclipse.jetty.plus.jndi.Resource">|??<Arg>jdbc/test</Arg>|??<Arg>|???<New class="org.hsqldb.jdbc.JD
BCDataSource">|????<Set name="DatabaseName">mem:foo</Set>|????<Set name="User">SA</Set>|???</New>|??</Arg>|?</New> java.lang.IllegalStateException: No suitable constructor: <New id="DSTest" class="org
.eclipse.jetty.plus.jndi.Resource">
<Arg>jdbc/test</Arg>
<Arg>
<New class="org.hsqldb.jdbc.JDBCDataSource">
<Set name="DatabaseName">mem:foo</Set>
<Set name="User">SA</Set>
</New>
</Arg>
Изменить комментарий две строки d (восстановить Jetty 8), и приложение запускается правильно.
Похоже требует DOCTYPE в Jetty 9. В настоящее время работает - спасибо большое! – condit