无法在Tomcat 9上运行Jersey 2 Restful web服务

无法在Tomcat 9上运行Jersey 2 Restful web服务,rest,jersey-2.0,tomcat9,Rest,Jersey 2.0,Tomcat9,我正在编写Jersey 2 Restful web服务。 以下是服务类别: 包com.Test.PS; 导入java.io.IOException; 导入javax.ws.rs.GET; 导入javax.ws.rs.Path; 导入javax.ws.rs.products; 导入javax.ws.rs.core.MediaType; 导入javax.ws.rs.QueryParam; 导入javax.ws.rs.Consumes; 导入javax.ws.rs.POST; 导入com.Test.E

我正在编写Jersey 2 Restful web服务。 以下是服务类别:

包com.Test.PS; 导入java.io.IOException; 导入javax.ws.rs.GET; 导入javax.ws.rs.Path; 导入javax.ws.rs.products; 导入javax.ws.rs.core.MediaType; 导入javax.ws.rs.QueryParam; 导入javax.ws.rs.Consumes; 导入javax.ws.rs.POST; 导入com.Test.Exchange.*;//这里定义了类UserInfo @路径/ps 公共类测试服务{ 私有用户信息界面; 公共TestService引发IOException{ ui=新用户信息; } 公共TestService字符串uid引发IOException{ UserInfo ui=ObjectFileStore.serializeDataInuid; } 公共TestService UserInfo ui引发IOException{ this.ui=ui; ObjectFileStore.serializeDataOutui; } @得到 @ProducesMediaType.TEXT\u HTML 公共字符串sayHelloHTML@QueryParamuid字符串uid{ 字符串资源=Hi'+uid+'; 返回资源; } @职位 @ConsumesMediaType.APPLICATION_JSON @ProducesMediaType.APPLICATION_JSON 公共用户信息postNK@QueryParamasid字符串asid,用户信息u{ 返回用户界面; } } 以下是maven依赖项:

org.glassfish.jersey.core :

在控制台屏幕上,我看到:

INFO: Reloading Context with name [/Test-PS] has started
org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
org.apache.catalina.core.StandardContext reload
INFO: Reloading Context with name [/Test-PS] is completed
我尝试添加了其他帖子建议的几个依赖项,但是仍然存在相同的问题。令人惊讶的是,有时它的工作原因不明

我还删除了所有maven存储库,没有任何更改

从所有Jersey依赖项中删除提供的。只有当服务器的库中已经有这些JAR时,才能使用此选项。Tomcat没有球衣罐。另一方面,如果您使用的是Glassfish,那么您可以使用提供的,因为Glassfish已经拥有所有的Jersey罐子

删除Jersey客户端和Jersey服务器依赖项。它们都已经被jersey容器servlet拉进来了。不需要冗余


问题可通过以下方式解决:

删除Eclipse并安装EE版本。 删除Tomcat并安装9.0.11版本。 从头开始重新创建项目。 使用jersey容器servlet核心而不是jersey容器servlet

参考:

泽西岛附属公司-


Tomcat版本比较-

感谢您的回复。。我曾经尝试过,正如我在问题中所说的,我已经尝试过几种其他依赖项组合,但我仍然面临同样的问题。但是,正如您所建议的,我试图仅使用默认编译范围维护jersey容器servlet、javax.servlet-api和jersey-hk2依赖项。我仍然得到同样的问题!!!我也尝试了jersey容器servlet核心,同样的结果。我正在考虑换一条玻璃鱼。Jersey的2个glassfish库似乎与Tomcat 9不兼容。如果想要使用不同版本的Jersey,而不是Tomcat服务器中已有的Jersey,需要做什么?或者在现有的Tomcat服务器上不可能使用不同版本的jersey?你刚刚帮我省去了一些麻烦!
INFO: Reloading Context with name [/Test-PS] has started
org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
org.apache.catalina.core.StandardContext reload
INFO: Reloading Context with name [/Test-PS] is completed