来自标准Java SE应用程序的Jetty

时间:2015-02-25 04:04:54

标签: java jetty embedded-jetty

我想在普通的旧版Java应用中使用Jetty及其网络套接字API。我已经遵循了一些很好的教程,但已经卡住了。我正在尝试使用eclipse构建,我不使用maven。我遇到了这个编译错误:

The type javax.servlet.http.HttpServletResponse cannot be resolved. It is indirectly referenced from required .class files

当我为服务器提供此代码时:

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.websocket.server.WebSocketHandler;
import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory;

public class MyServer {

    public static void main(String[] args) throws Exception {
        Server server = new Server(8080);
        WebSocketHandler wsHandler = new WebSocketHandler() {
            @Override
            public void configure(WebSocketServletFactory factory) {
                factory.register(MySocket.class);
            }
        };
        server.setHandler(wsHandler);
        server.start();
        server.join();
   }
}

我正在开发使用eclipse(而不是maven或任何其他工具),我已经从Jetty下载中添加了我认为必要的.jar文件到项目中:

javax.websocket-api-1.0.jar
websocket-api-9.2.8.v20150217.jar
websocket-server-9.2.8.v20150217.jar
websocket-servlet-9.2.8.v20150217.jar
jetty-server-9.2.8.v20150217.jar
jetty-servlet-9.2.8.v20150217.jar

有人可以解释在没有maven的非EE应用程序中在eclipse中使用Jetty的设置过程吗?

2 个答案:

答案 0 :(得分:2)

您需要添加修复错误的servlet-api-3.1.0.jar:http://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/3.1.0

这个链接,解释了如何在没有maven的情况下使用Jetty,可能会有所帮助https://wiki.eclipse.org/Jetty/Tutorial/Jetty_HelloWorld

答案 1 :(得分:1)

  1. 使用mavenrepository.com找出libs的依赖关系。
  2. 例如:

    http://mvnrepository.com/artifact/org.eclipse.jetty/jetty-server/9.2.8.v20150217

    (你错过了lib'javax.servlet v3.1.0')

    1. 或使用grepcode.com搜索“无法解析”类中的哪个库。