为什么我的码头部署的战争正在寻找org.apache.juli.logging.LogFactory?

时间:2013-03-07 21:48:50

标签: jetty embedded-jetty

我正在尝试从嵌入式jetty服务器内部署war文件。我在WAR的WEB-INF / lib中有commons-logging jar。 JspServlet的init方法正在寻找这个org.apache.juli.logging.LogFactory类。我正在使用Jetty 7.5。

在研究如何使用嵌入式Jetty部署战争时,我也看到了让jsps工作的问题。这可能与此有关,因为它是寻找这个类的JspServlet吗?

WAR非常简单,基本上是Spring MVC 3的HelloWorld示例。我只是在这一点上进行原型设计。 Jetty服务器也很简陋,现在是:

public class JettyServer extends Server {

    Server server;
    int port;

    public JettyServer(int port) {
        server = new Server(port);

        WebAppContext webapp = new WebAppContext();
        webapp.setContextPath("/");
        webapp.setWar("webapps/myWar.war");
        server.setHandler(webapp);
    }

    public void startServer() throws Exception {
        server.start();
        server.join();
    }
}

1 个答案:

答案 0 :(得分:3)

你的构建中有一个旧的JspServlet(你粘贴的错误来自Tomcat 6的JspServlet!)

确保使用jetty-distribution--7.5.0.v2011090使用的相同服务器端JSP支持jar。

以下是Jetty附带的清单..

[jetty-distribution-7.5.0.v20110901]$ sha1sum lib/jsp/*.jar
84d1928dbcf564dab574577ac454ef7cacec2b9a  lib/jsp/com.sun.el_1.0.0.v201004190952.jar
5618cc694d1e1ce8956fa441b551c8b690547fab  lib/jsp/ecj-3.6.jar
b4628cebfe2612db3c646ffbde43029fd3d0d7a0  lib/jsp/javax.el_2.1.0.v201004190952.jar
2c891df2ef4882fd250d34d7a873061bf4c3d9bc  lib/jsp/javax.servlet.jsp_2.1.0.v201004190952.jar
582f581db2e9646d1f61313f3d96ced8c0acdac5  lib/jsp/javax.servlet.jsp.jstl_1.2.0.v201004190952.jar
3bd086e9e7bdcff906ad25fed4e5805ad101fc5e  lib/jsp/jetty-jsp-2.1-7.5.0.v20110901.jar
3ec4b7e53369ed311a3171fe6b73beb773a46e25  lib/jsp/jsp-impl-2.1.3-b10.jar
b070c22fe31d84de75135da39faff654fe42c933  lib/jsp/org.apache.taglibs.standard.glassfish_1.2.0.v201004190952.jar

Jetty使用Apache的Jasper编译器和Glassfish进行修改。