cal*_*586 3 eclipse tomcat servlets maven
我使用的是JDK 1.6,Maven 2.2.1,Tomcat 7和Eclipse Juno(企业版).
尝试导入javax.servlet等包时.*; Eclipse抱怨说它没有在它的类路径(构建路径)中.
所以,我所做的是在我的pom.xml文件中包含以下依赖项:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在tomcat服务器启动期间:
INFO: Deploying web application archive C:\DevTools\tomcat\apache-tomcat-7.0.32\webapps\myapp.war
Dec 20, 2012 4:55:41 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(C:\DevTools\tomcat\apache-tomcat-7.0.32\webapps\myapp\WEB-INF\lib\servlet-api-2.3.jar)
- jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Run Code Online (Sandbox Code Playgroud)
为什么要记录此消息?
另外,我似乎无法在maven存储库中找到适合servlet-api 3.0或jsp 2.2的版本
请帮助我......
Web应用程序容器负责提供Servlet/JSP API和实现文件.使用当前的Maven设置,您将导致这些库文件捆绑在您的应用程序中,从而导致您在日志中看到的类加载器问题.
尝试导入javax.servlet等包时.*; Eclipse抱怨说它没有在它的类路径(构建路径)中.
是的,您需要在类路径中使用API库,以便编译依赖于它们的代码.您希望在构建类路径中包含这些库,同时不将它们包含在最终的可部署中.您可以通过scope将依赖库标识为Maven来完成此操作provided.这基本上意味着"编译需要这些库,但最终将由应用程序容器提供,因此实际上不要将它们包含在可部署的中".
另外,我似乎无法在maven存储库中找到适合servlet-api 3.0或jsp 2.2的版本
Servlet 3.0和JSP 2.2 API已捆绑在通用的JavaEE Web API中.这是您需要在POM中指定的依赖项.图说:
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10068 次 |
| 最近记录: |