繁体   English   中英

杰蒂:罐中嵌入了JSP

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM