我正在尝试从嵌入式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();
}
}
答案 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进行修改。