首页 文章

Eclipse:无法将jar加载到Tomcat WEB-INF / Lib文件夹中?

提问于
浏览
1

当我使用eclipse运行Tomcat时,我收到这个tomcat错误“java.lang.ClassNotFoundException:org.glassfish.jersey.servlet.ServletContainer”:

我看到eclipse不包含进入(tomcat 7.0)WEB-INF / Lib文件夹的jar,虽然我试过这个:

  • 在项目属性下的“Web部署程序集”中包含Maven依赖项 . (Maven下载了POM.xml中的依赖项,但这些jar文件没有被eclipse选中)

POM.xml如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.dcr.javacode.rest.jersey</groupId>
  <artifactId>JAXRS-HelloJerseyExample</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <repositories>
		<repository>
			<id>maven2-repository.java.net</id>
			<name>Java.net Repository for Maven</name>
			<url>http://download.java.net/maven/2/</url>
			<layout>default</layout>
		</repository>
	</repositories>
  
  <dependencies>
    	<dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-server</artifactId>
            <version>2.17</version>
        </dependency>        
  </dependencies>
</project>

web.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>JAXRS-HelloJerseyExample</display-name>
 	<servlet>
    	<servlet-name>JerseyRESTService</servlet-name>
    	<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    
    	<init-param>
	        <param-name>jersey.config.server.provider.packages</param-name>
	        <param-value>com.dcr.javacode.rest.jersey</param-value>
    	</init-param>
    	
    	<load-on-startup>1</load-on-startup>
  	</servlet>
  	<servlet-mapping>
    	<servlet-name>JerseyRESTService</servlet-name>
    	<url-pattern>/rest/*</url-pattern>
  	</servlet-mapping> 	
</web-app>

1 回答

  • 0

    夫妻俩,我看错了 .

    • 您缺少pom文件中的 <packaging> 元素 . 如果要将其部署到servlet容器,则该包应为 war . 默认为 jar

    • 您正在使用 jersey-server ,其中没有 ServletContainer . 而是使用 jersey-container-servlet

    But...

    开始使用Jersey的最简单方法是使用Maven原型 .

    在Eclipse中:

    • [ File ]→[ New ]→[ Other ]

    • [ Maven ]→[ Maven Project ]→下一步

    • 保留默认值(确保“创建一个简单的项目是 unchecked ”)→下一步

    • 在下一个对话框的"Filter"字段中,键入 jersey-quickstart-webapp . 加载所有原型可能需要一些时间 . 您可以在IDE的右下角的一个小进度条中看到原型加载的进度 . 如果你没有't see the progress bar and there are no search results, then most likely you don'吨的原型 . 在这种情况下,请按照this answer的第一部分中的说明进行操作

    • 选择 org.glassfish.jersey.archetypes 版本 . 它应默认为最新版本(此时为2.17)→下一步

    • 输入您的groupId,artifactId和包→完成

    这应该会让你成为一个正在运行的Jersey启动应用程序,它将在Tomcat上运行

相关问题