2

我使用Maven建立了一个项目,它只包含一个类-“App”和一个“main”方法,代码如下:

org.eclipse.jetty.server.Server server = new Server();
WebAppContext webContext = new WebAppContext("D:/webroot/webapp", "/web");
server.setHandler(webContext);
server.start();
System.in.read();

本应用在eclipse中可以正常运行,在Chrome中可以浏览网页(jsp)。

然后我将此项目导出到“可运行的 JAR 文件”,使用选项“将所需的库打包到生成的 JAR”中,然后在 Windows 控制台中运行 jar 文件:java -jar app.jar

该应用程序可以运行,但是当我使用 Chrome 浏览网页(jsp)时,它告诉我一个错误:

HTTP ERROR 500 访问 /web/ 时出现问题。原因:java.err.nojdk 原因:

org.apache.jasper.JasperException: java.err.nojdk at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:89) at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:375 ) 在 org.apache.jasper.compiler.Jsr199JavaCompiler.compile(Jsr199JavaCompiler.java:198) 在 org.apache.jasper.compiler.Compiler 的 org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116)。生成类(编译器.java:364)

那么如何让jetty server app在没有eclipse的情况下运行呢?

4

4 回答 4

3

你可以试试这个:在 start.ini 中,找到

Dorg.apache.jasper.compiler.disablejsr199=true

默认情况下启用此配置。你应该禁用它。

于 2013-05-15T01:54:19.837 回答
1

看来您应该使用JDK而不是JRE?Eclipse 有自己的 jdk。

于 2012-06-19T03:35:40.503 回答
0

我对 Jetty 有同样的问题7.6.12.v20130726。我切换到7.4.5.v20110725并且问题消失了。

这是来源:http ://dev.eclipse.org/mhonarc/lists/jetty-users/msg01588.html

于 2013-09-11T13:57:26.447 回答
0

选择 JDK 而不是 JRE 来运行 Jetty 为我解决了这个问题。

使用jetty-distribution-7.6.13.v20130916.

于 2013-09-26T11:50:57.150 回答