简短:我有一个提供war工件的项目,其中包含带注释但没有web.xml的servlet.如果我尝试在jetty中使用war,我总是只获得war内容的目录列表,而不是servlet执行.
任何的想法?
长话:我的servlet看起来像这样
package swa;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet( asyncSupported = false, urlPatterns={"/*"})
public class ServletX extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Set response content type
response.setContentType("text/html");
// Actual logic goes here.
PrintWriter out = response.getWriter();
out.println("<h1>Hi there..</h1>");
}
}
Run Code Online (Sandbox Code Playgroud)
所以我猜没什么特别的.当我使用mvn jetty:run一切都很好.确保这一点后,项目被打包成一个战争档案.
此war存档在另一个必须在代码中设置jetty的项目中使用.这就是它的完成方式:
String jettyPort = properties.getProperty("jetty.port", "8080");
Server server = new …Run Code Online (Sandbox Code Playgroud)