Maven 未找到具有最新版本的Jersey服务
我想在Eclipse中使用Maven和Tomcat(7.0)测试一个简单的“Hello World”jersey服务。Maven下载了最新版本1.17,但每次我尝试访问该页面时,都会返回404。但是,在更改回1.9版后,它可以按预期工作。这些版本之间有什么变化吗?或者我遗漏了什么 我所做的是调用Maven 未找到具有最新版本的Jersey服务,maven,tomcat,servlets,jersey,http-status-code-404,Maven,Tomcat,Servlets,Jersey,Http Status Code 404,我想在Eclipse中使用Maven和Tomcat(7.0)测试一个简单的“Hello World”jersey服务。Maven下载了最新版本1.17,但每次我尝试访问该页面时,都会返回404。但是,在更改回1.9版后,它可以按预期工作。这些版本之间有什么变化吗?或者我遗漏了什么 我所做的是调用localhost:8080/rngservice/rest/hello,当我使用9以后的版本时,会出现404错误。但是,使用版本9可以按预期工作并返回HTML页面 有什么建议吗 我的代码: packag
localhost:8080/rngservice/rest/hello
,当我使用9以后的版本时,会出现404错误。但是,使用版本9可以按预期工作并返回HTML页面
有什么建议吗
我的代码:
package service.test;
import javax.ws.rs.*;
@Path("/hello")
public class RNGResource {
@GET
@Produces(MediaType.TEXT_HTML)
public String getItHTML() {
return "<htm> <title> " + "Got it!" + "</title> </html>";
}
}
Maven.pom
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>service</groupId>
<artifactId>rngservice</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>rngservice</name>
<build>
<!-- ... -->
</build>
<dependencies>
<dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.17</version>
</dependency>
</dependencies>
</project>
4.0.0
服务
RNG服务
战争
1.0-快照
RNG服务
asm
asm
3.1
javax.ws.rs
jsr311 api
1.1
泽西岛
球衣核心
1.17
泽西岛
泽西服务器
1.17
如果您使用的是404,则该服务似乎无法正确启动。您确定Tomcat/应用程序启动期间没有错误吗?两个版本都没有错误,日志生成的结果相同。然而,在使用jersey的1.9版本时,也有此日志信息com.sun.jersey.server.impl.container.servlet.JerseyServletContainerInitializer addServletWithApplication INFO:在servlet映射/rest/*处注册名为service.test.random.RNGServiceApplication的jersey servlet应用程序,对于同名的应用程序类
,这不是使用1.17版本生成的,1.17版本可能会解释404错误。但问题仍然是为什么会发生这种情况?我不知道如何宣传这种情况以吸引更多的关注。。但是我仍然有同样的问题,Jersey 1.18,Maven 3,Eclipse4.3中的Tomcat7。我想这是因为maven处理jersey库的方式。如果我创建了一个“动态web项目”并手动放入jersey方面,Tomcat会很高兴地找到REST资源。当我将完全相同的项目转换为Maven项目并让它处理依赖项时,同一个Tomcat从此抛出404个错误。通过更多的实验,我发现将Jersey库解析从Maven中移除(即手动将其添加到Eclipse)让Tomcat开心。很抱歉进行了增量更新——我刚刚发现Maven使用了适用于Tomcat 7的Jersey 2.5.1,并按照中的说明配置了dep
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>service</groupId>
<artifactId>rngservice</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>rngservice</name>
<build>
<!-- ... -->
</build>
<dependencies>
<dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.17</version>
</dependency>
</dependencies>
</project>