当我使用web.xml将Servlet绑定到url时,如下所示,每个工作正常。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>MainServlet</servlet-name>
<servlet-class>lv.rtu.sux.laip.web.MainServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MainServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
但是当我尝试使用@annotation @WebServlet执行此操作时,我会收到以下消息:使用无法使用所请求的资源。
我尝试了两种变体:
@WebServlet(name="hello",urlPatterns={"/hello"})
public class MainServlet extends HttpServlet{
@WebServlet("/hello")
public class MainServlet extends HttpServlet{
更新 我尝试使用普通的Tomcat运行此应用程序(在此之前我使用的是嵌入式Tomcat),现在它运行正常。 但是我如何通常使用嵌入式Tomcat运行它?我正在使用来自maven group org.apache.tomcat.embed 的库:
String webappDirLocation = "src/main/webapp/";
Tomcat tomcat = new Tomcat();
tomcat.setPort(8089);
Context ctx = tomcat.addWebapp("/", new File(webappDirLocation).getAbsolutePath());
tomcat.start();
tomcat.getServer().await();
我是否必须执行一些其他操作才能使此应用与注释一起使用?