0
我綁定使用Jetty運行一個servlet,但只能使用java代碼(embedded jetty)。 這裏是我的兩個類:是否可以在沒有web.xml文件的情況下在jetty上運行servlet?
ExampleServer.java:
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.servlet.ServletContextHandler;
/**
* Created by Administrator on 7/8/14.
*/
public class ExampleServer {
public static void main(String[] args) throws Exception {
Server server = new Server();
ServerConnector connector = new ServerConnector(server);
connector.setPort(8080);
server.setConnectors(new Connector[]{connector});
ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/hello");
context.addServlet(HelloServlet.class, "/");
HandlerCollection handlers = new HandlerCollection();
handlers.setHandlers(new Handler[]{context, new DefaultHandler()});
server.setHandler(handlers);
server.start();
server.join();
}
}
HelloServlet.java:
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Created by Administrator on 7/8/14.
*/
public class HelloServlet extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().println("<h1>Hello from HelloServlet</h1>");
response.getWriter().println("session=" + request.getSession(true).getId());
}
}
現在,當我試圖訪問http://localhost:8080/hello
我得到以下錯誤:
HTTP錯誤:500
訪問/ hello /時出現問題。原因:
java.lang.IllegalStateException: No SessionManager
有關如何解決該問題的任何想法? 謝謝。
是的,如果你嵌入服務器並在啓動時提供正確的參數。也就是說,你調用自己的主 – maress
所以我必須添加一些東西在我的主要方法? – skiabox
您會看到web.xml數據只是配置數據。您在啓動服務器時提供參數。谷歌嵌入式碼頭,你會看到如何傳遞參數 – maress