[英]JETTY: Embedded JSP inside its jar
我正在使用Jetty 8.0。 在我的Java应用程序中创建一个简单的Web服务器(html / json / png)。
我添加了一个处理程序以使用位于包内的jsp页面(如此处所述: http : //docs.codehaus.org/display/JETTY/Embedding+Jetty ):
String WEBAPPDIR = "com/econorma/jsp/resources";
String CONTEXTPATH = "/jsp";
URL warUrl = WebApplication.class.getClassLoader().getResource(WEBAPPDIR);
final String warUrlString = warUrl.toExternalForm();
WebAppContext webapp = new WebAppContext(warUrlString, CONTEXTPATH);
我在Eclipse中测试了此代码,没有任何问题:html和jsp都可以工作。
当我运行我的jar部署时,我的问题来了。 我在getClassLoader行中得到NULL POINTER异常。
我试图将斜线放在WEBAPPDIR的末尾,如在StackOverflow帖子中提到的那样,但是,如果我解决了空指针异常,我也无法解决。
您需要将更新后的jsp和html文件代码放回jar中才能正常工作。 软件包com.econorma.ui.resources
的本地jsp页面仅在开发过程中以及将项目导出为war文件时可用。 这些jar将不会具有您在com.econorma.ui.resources
中的jsp页面中com.econorma.ui.resources
。
因此,您需要从创建的包中复制jsp或html文件。 然后将这些文件放在相应包中的jar中并进行更新。
现在,您必须在安装新的jar文件之后再次构建项目,然后重新启动码头服务器以查看更改,并且应该能够正确运行服务器。 希望这可以帮助。
我的嵌入式码头和jsp有两个问题:
1-在调用我的webClass之前缺少代码:
System.setProperty("org.apache.jasper.compiler.disablejsr199", "true");
2-Eclipse导出以准备jar:我使用EXTRACT方法而不使用PACKAGE方法,因此在jar中找不到jsp是不可能的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.