我已经开始编写可以在 Google App Engine 上运行的应用程序了。
但是当我想使用从 Netbeans 到 Eclipse 的代码时,我遇到了一个错误:
import javax.servlet.annotation.WebServlet;
和
@WebServlet(name = "MyServlet", urlPatterns = {"/MyServlet"})
错误是:
The import javax.servlet.annotation cannot be resolved
WebServlet cannot be resolved to a type
我尝试将 servlet-api.jar
导入 Eclipse,但还是一样,还尝试构建和清理项目。我不在我的 Eclipse 上使用 Tomcat,只在我的 Netbeans 上使用它。我该如何解决这个问题?
最佳答案
I tried to import the servlet-api.jar to eclipse but still the same also tried to build and clean the project. I don't use tomcat on my eclipse only have it on my net-beans. How can I solve the problem.
不要不要把servlet-api.jar
在你的项目中。这只是自找麻烦。如果 Dynamic Web Module facet 设置为 3.0 版,您需要检查项目属性的 Project Facets 部分。您还需要确保您的 /WEB-INF/web.xml
(如果有的话)被声明符合 Servlet 3.0 规范。 IE。 <web-app>
根声明必须符合以下内容:
<web-app
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_3_0.xsd"
version="3.0">
为了能够导入javax.servlet
东西,你需要在 Eclipse 中集成一个完整的 servletcontainer,比如 Tomcat,然后在项目属性的 Targeted Runtimes 中引用它。您可以对 Google App Engine 执行相同操作.
再一次,不要按照其他人的建议将特定于容器的库复制到 webapp 项目中。它会使您的 webapp 在不同品牌/版本的生产容器上无法执行。你会得到所有颜色的类路径相关的错误/异常。
另见:
与具体问题无关:GAE 确实不支持 Servlet 3.0。它的底层 Jetty 7.x 容器仅支持 max Servlet 2.5。
关于java - 无法导入 javax.servlet.annotation.WebServlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7595797/