这样的错误: - java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521) 在 org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
当我将所有jar文件放在lib(WEB-INF / lib)文件夹下时,它会工作。但是我想要pom文件来解决这个问题。
答案 0 :(得分:1)
这完全取决于您的配置。 pom.xml 和不完整的教程。如果您希望pom.xml为您解决此问题,则需要添加一些内容。
首先要做的事情。小红十字和事实,您的项目配置为在Java 1.5下运行让我猜,你与你的deps有兼容性问题。特别是javax.ws.rs \ javax.ws.rs-api
。
要解决此问题,您可能希望maven通过maven-compiler-plugin:
处理它<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<inherited>true</inherited>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
然后,你可能想要运行服务器&#34;在&#34;日食。您可以在此处使用tomcat7-maven-plugin:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
要使用的最后一个插件是maven-war-plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
要从Jersey开始,您只需要配置一个dep:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-bundle</artifactId>
<version>1.19</version>
</dependency>
我需要说,有newer versions available,但您可能有理由使用1.19
现在,您的完整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>sujith</groupId>
<artifactId>jersey-sample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.maven-compiler-plugin.version>3.5.1</project.maven-compiler-plugin.version>
<project.tomcat7-maven-plugin.version>2.2</project.tomcat7-maven-plugin.version>
<project.maven-war-plugin.version>2.6</project.maven-war-plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-bundle</artifactId>
<version>1.19</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
<outputDirectory>${project.artifactId}</outputDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${project.maven-compiler-plugin.version}</version>
<inherited>true</inherited>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>${project.tomcat7-maven-plugin.version}</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${project.maven-war-plugin.version}</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
在Eclipse中,您现在右键单击您的项目并选择 - &gt;运行方式/调试为 - &gt; Maven构建......
在修改配置和lauch 菜单中,您现在可以添加目标:clean install tomcat7:run-war
以及它。
您的服务器应该启动,资源可用于http://127.0.0.1:8080
/ {web.xml\servlet-mapping\url-pattern}
/ {path-to-resource}
最后一件事。请先查看原始示例。大多数教程都有废话。最后,请阅读how to ask页。
度过愉快的一天。