con*_*dit 1 jetty maven-jetty-plugin
我正在尝试使用Jetty 9 Maven插件来创建JNDI资源.相同的配置适用于Jetty 8,但产生了java.lang.IllegalStateException: No suitable constructorJetty 9.以下是相关文件:
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>
Run Code Online (Sandbox Code Playgroud)
的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>
Run Code Online (Sandbox Code Playgroud)
和实际的错误:
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>
Run Code Online (Sandbox Code Playgroud)
将注释更改为两行(以恢复Jetty 8)并正确启动应用程序.
您需要将jetty-ds-dev.xml文件中的以下行作为第2行:
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
Run Code Online (Sandbox Code Playgroud)
不确定为什么它在没有指定configure.dtd的情况下使用8,但绝对应该在那里,并且在版本9_0.
尊重Jan
| 归档时间: |
|
| 查看次数: |
2165 次 |
| 最近记录: |