我可以使用Jetty访问.html页面,但是当我访问.jsp页面时,我得到:
0 13:21:13 / [INFO]没有JSP支持 . 检查JSP jar是否在lib / jsp中,并且已将JSP选项指定为start.jar
我添加了以下作为依赖项:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>8.0.0.M1</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
这是否满足“检查JSP jar是否在lib / jsp中”的错误消息部分?
另外,我不知道“检查是否已将start选项指定给start.jar”是指在此上下文中 . 我有以下内容:
public static void main(String[] args) throws Exception {
Server server = new Server();
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(8080);
server.addConnector(connector);
WebAppContext webApp = new WebAppContext();
webApp.setContextPath("/");
webApp.setWar("src/main/webapp");
server.setHandler(webApp);
server.start();
server.join();
}
6 回答
我通过添加Mortbay JSP依赖项来实现它(这是Gradle表示法,但你明白了):
有一个larger writeup available on my blog .
我没有使用Jetty发行版的jar,只使用Maven依赖项:
我知道这已经回答了一段时间 . 我无法得到Ben McCann为我工作的答案 . 但是,通过添加直接向Jetty添加JSP支持,我很幸运
奇怪的是,我最初拥有的版本6.1.24并不支持 .
总的来说,这使得我的pom.xml看起来像这样:
<性能>
<jetty.version> 6.1.14 </jetty.version>
</属性>
<! - Jetty依赖项 - >
<依赖性>
<依赖性>
<的groupId> org.mortbay.jetty </的groupId>
<artifactId的>码头</ artifactId的>
<版本> $ </版本>
<类型> jar </类型>
</依赖性>
<依赖性>
<的groupId> org.mortbay.jetty </的groupId>
<artifactId的>码头-util的</ artifactId的>
<版本> $ </版本>
<类型> jar </类型>
</依赖性>
<依赖性>
<的groupId> org.mortbay.jetty </的groupId>
<artifactId的>码头加</ artifactId的>
<版本> $ </版本>
<类型> jar </类型>
</依赖性>
<! - jsp支持jetty,添加以下2 - >
<依赖性>
<的groupId> org.mortbay.jetty </的groupId>
<artifactId的> JSP-2.1 </ artifactId的>
<版本> $ </版本>
<类型> jar </类型>
</依赖性>
<依赖性>
<的groupId> org.mortbay.jetty </的groupId>
<artifactId的> JSP-API-2.1 </ artifactId的>
<版本> $ </版本>
<类型> jar </类型>
</依赖性>
<依赖性>
<的groupId> org.apache.ant </的groupId>
<artifactId的>蚁ANTLR </ artifactId的>
<版本> 1.7.1 </版本>
</依赖性>
</依赖>
和我的开始课(我在文件夹
\src\test\java\com\company\wikiproject
中添加)public class Start {public static void main(String [] args){
Server jettyServer = null;
尝试{
jettyServer = new Server();
SocketConnector conn = new SocketConnector();
conn.setPort(8080);
jettyServer.setConnectors(new Connector [] );
WebAppContext context = new WebAppContext();
context.setContextPath( “/”);
context.setWar( “SRC /主/ web应用”);
jettyServer.setHandler(上下文);
jettyServer.start();
} catch(异常忽略){
if(jettyServer!= null){
尝试{
jettyServer.stop();
} catch(异常e1){
e1.printStackTrace();
}
}
}
}
}
以Simon Huet的出色答案为基础,这是我的看法:
在阅读了这个stackoverflow页面(好工作)以及http://wiki.eclipse.org/Jetty/Howto/Configure_JSP之后,我终于让它工作了 . 由于我的配置略有不同,我想我是'd contribute back. I have an embedded Jetty 8 installation without the ' javac'编译器,我通过使用eclipse编译器并在创建服务器之前设置系统属性来使其工作,如下所示:
并使用以下maven配置:
Jetty 9.1.3,http://www.eclipse.org/jetty/documentation/current/configuring-jsp.html,只是添加jetty-jsp为我工作(加上来自url的web.xml配置) . 无需在码头groupId(即mortbay)外添加 jar .