我有一个maven项目(GWT - Web应用程序项目)。目前我正在研究本地maven构建和Jenkins构建之间的区别。我的本地构建(由maven通过控制台或eclipse maven插件构建)在本地和所有其他环境中工作。
Jenkins构建也很成功,但无法在任何地方工作。在不更改应用程序上下文,配置或其他任何内容(仅部署由Jenkins构建的新war文件)的情况下,Jenkins构建的相同应用程序在所有环境中都失败。
注意:Jenkins总是从SVN回购中检出项目的新版本。
如果我正在调用Servlet,浏览器会显示以下错误:
HTTP Status 404 - Servlet startupServlet is not available
此外,我在catalina.out中得到以下异常:
Dec 11, 2014 8:50:17 AM org.apache.catalina.core.StandardHostValve custom
SEVERE: Exception Processing ErrorPage[errorCode=404, location=/errorpages/404.xhtml]
javax.servlet.ServletException: Servlet.init() for servlet errorServlet threw exception
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1254)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:827)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:615)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:438)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:421)
at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:342)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:311)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:705)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: Configuration not loaded. Call createConfiguration(File confDir) first.
at com.afs.paypage.server.conf.Config.getConfiguration(Config.java:162)
at com.afs.paypage.server.util.TemplateUtil.getDefaultConfiguration(TemplateUtil.java:59)
at com.afs.paypage.server.util.TemplateUtil.<init>(TemplateUtil.java:49)
at com.afs.paypage.server.util.TemplateUtil.getInstance(TemplateUtil.java:40)
at com.afs.paypage.server.servlet.PayPageErrorServlet.init(PayPageErrorServlet.java:31)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1213)
... 18 more
“由...引起”是一个自定义异常,并提到缺少配置和/或缺少“org.apache.catalina.core.StandardHostValve custom”。 “custom”是“WEB-INF”旁边的文件夹,文件夹和包含文件存在!正如我所说,我没有改变任何配置,而不是代码。不过我已经仔细检查了所有配置和代码,但找不到错误。
问题是,如果在本地构建它,它正在工作,但是同一个应用程序不能正在构建Jenkins。
对于maven,我已经将Java 6更新为Java 8(JDK)并更新了所有Jenkins Maven插件。但仍然是同样的行为。
我还有很多其他项目正在运行,由Jenkins构建或在本地构建,并使用相同的Jenkins配置。
还有其他想法吗?