我使用 Maven 插件在我的 ecplise 中构建了一个 Web 应用程序 我想在 jetty 调试它。
这是我的代码:
@WebServlet(name="Startup",value="/", urlPatterns = {}, loadOnStartup = 1)
public class Startup extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see Servlet#init(ServletConfig)
*/
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("start up");
QCloud.setupSDK();
}
这是 pom:
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.3.0.M2</version>
<configuration>
<stopPort>8889</stopPort>
<useTestClasspath>false</useTestClasspath>
<webAppConfig>
<contextPath>/${project.name}</contextPath>
</webAppConfig>
</configuration>
</plugin>
当我启动 jetty 服务器时。没有错误显示。我可以看到索引页。 但我无法访问我的 servlet。 servlet 似乎还没有通过 jetty 服务器初始化。 然后我构建一个 war 并将其放入 tomcat 服务器的 webapps 中。 一切正常,servlet 初始化成功,有人知道为什么吗?
最佳答案
我不知道这是否是你的情况,但我在 Jetty 上遇到了类似的问题。
使用注释时,不再需要 web.xml 文件,因此,如果您有该文件,请将其删除(即使内部没有映射 servlet),这样就可以解决问题了。
另请注意,value 或 urlPatterns 是 @WebServlet 的必需属性> 注释,但不应同时使用两者。
关于java - 在maven jetty插件中使用@WebServlet注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44748371/