我正在尝试使用jetty gradle插件来运行jetty服务器进行功能测试。但是,我收到java.lang.IllegalArgumentException: Object is not of type class org.mortbay.jetty.webapp.WebAppContext
。
我已按照here显示的示例,无法看到我的做法有何不同。构建文件的相关部分如下所示:
apply plugin: 'jetty'
dependencies {
providedRuntime 'com.h2database:h2:1.3.167'
providedRuntime 'commons-dbcp:commons-dbcp:1.4'
}
jettyRunWar {
httpPort = 8083
stopPort = 8085
stopKey = "stopKey"
jettyConfig = file("$projectDir/jetty-config/jetty.xml")
}
jettyStop {
stopPort = 8085
stopKey = "stopKey"
}
我的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">
<Set name="contextPath">/gateway</Set>
<New class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
</Arg>
<Arg>jdbc/gateway</Arg>
<Arg>
<New class="org.apache.commons.dbcp.BasicDataSource">
<Set name="url">jdbc:h2:tcp://localhost/build/db; USER=sa</Set>
</New>
</Arg>
</New>
</Configure>
可以找到堆栈跟踪here。
任何建议都将不胜感激。
答案 0 :(得分:0)
我最好的猜测是它是Jetty插件中的一个错误。一般来说,Jetty插件非常有限且过时,我建议尝试使用arquillian-gradle-plugin。这就是Gradle的容器支持的方向。