2012-07-09 37 views
0

我们刚刚从地铁升级到最新的jax-ws代码,但由于某种原因,我们现在不得不运送蚂蚁。这似乎是jsp编译所需的。Jetty + jax-ws影响jsp编译 - 它现在需要ant吗?

没有它,我们得到

java.lang.NoClassDefFoundError: org/apache/tools/ant/BuildListener 
    at org.apache.jasper.compiler.Compiler.initJavaCompiler(Compiler.java:742) 
    at org.apache.jasper.compiler.Compiler.<init>(Compiler.java:131) 
    at org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext.java:288) 
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:605) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:360) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440) 
    ...... 

有什么办法,以消除蚂蚁的依赖?

jax-ws如何影响未更改的jsp库?

感谢 尼尔

+1

它是使用ant而不是Metro的Jasper(JSP编译器)。 – 2012-07-09 15:32:00

+0

我们没有改变jsp jar只有jax-ws jar。不知何故,看起来jax-ws会更改默认使用的编译器。 – 2012-07-09 15:40:48

+0

你能提供的最小的例子是什么? – 2012-07-09 15:44:00

回答

0

码头规定的“编译器 - 在运行时确定码头是Eclipse JDT编译器。”见http://docs.codehaus.org/display/JETTY/Jsp+Configuration

看来,在我们的构建过程中,core-3.1.1.jar没有被打包(这一定是由jax-ws更改引起的)。当缺少这个时,jetty没有任何警告,相反jasper会回到尝试使用ant(这会导致类未找到异常)。

当我手动将core-3.1.1.jar包含到安装中时,jsp编译工作。

+1

我建议你在你的集成测试套件中定期自动运行Web服务器的健全性检查。 – 2012-07-09 16:58:51