jersey servlet异常tomcat
我发疯了,试图启动一个简单的Jersey-Spring网络应用程序。我在尝试访问web资源时从Tomcat得到的错误是:jersey servlet异常tomcat,tomcat,servlets,jersey,Tomcat,Servlets,Jersey,我发疯了,试图启动一个简单的Jersey-Spring网络应用程序。我在尝试访问web资源时从Tomcat得到的错误是: HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletE
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet.init() for servlet Jersey Spring Web Application threw exception
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:619)
root cause
com.sun.jersey.api.container.ContainerException: No WebApplication provider is present
com.sun.jersey.spi.container.WebApplicationFactory.createWebApplication(WebApplicationFactory.java:69)
com.sun.jersey.spi.container.servlet.ServletContainer.create(ServletContainer.java:391)
com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.create(ServletContainer.java:306)
com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:607)
com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210)
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
javax.servlet.GenericServlet.init(GenericServlet.java:212)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:619)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.28 logs.
我的web.xml如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:application-context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<servlet>
<servlet-name>Jersey Spring Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.companyname.abc</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Spring Web Application</servlet-name>
<url-pattern>/webresources/*</url-pattern>
</servlet-mapping>
</web-app>
上下文配置位置
类路径:application-context.xml
org.springframework.web.context.ContextLoaderListener
org.springframework.web.context.request.RequestContextListener
Jersey Spring Web应用程序
com.sun.jersey.spi.spring.container.servlet.SpringServlet
com.sun.jersey.config.property.packages
com.companyname.abc
1.
Jersey Spring Web应用程序
/网络资源/*
你知道我做错了什么吗?如果你只是想让一个基本的例子起作用,那就不应该发生。也许你有一个损坏的jersey服务器jar。尝试删除现有的,然后下载新的
此错误意味着您的jar缺少META-INF/services/com.sun.jersey.spi.container.WebApplicationProvider文件,它告诉它使用哪个WebApplicationProvider。我也有同样的问题,经过一些调查和amak的提示,它与hbase依赖性有关,很明显问题是由hbase在我的项目中使用jersey 1.10时导入jersey 1.4引起的。排除HBase拉入的jersey工件后,一切看起来都很好:
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase</artifactId>
<version>0.90.4</version>
<exclusions>
<exclusion>
<artifactId>jersey-core</artifactId>
<groupId>com.sun.jersey</groupId>
</exclusion>
<exclusion>
<artifactId>jersey-json</artifactId>
<groupId>com.sun.jersey</groupId>
</exclusion>
<exclusion>
<artifactId>jersey-server</artifactId>
<groupId>com.sun.jersey</groupId>
</exclusion>
</exclusions>
</dependency>
org.apache.hbase
数据库
0.90.4
球衣核心
泽西岛
泽西json
泽西岛
泽西服务器
泽西岛
希望这对我有帮助
mvn依赖项:树
向我显示使用了另一个版本的jersey server。我包括了1.12版,但在树中出现了
jersey:jersey服务器:jar:1.9-ea07:compile
在修复了这个奇怪的依赖项后,错误消失了。strangley够了,我发现它是pom文件org.apache.hbase hbase 0.90.3-cdh3u1的以下条目,对我来说也是如此。删除hbase 0.90.4依赖项修复了使用Swagger时出现的类似问题。谢谢@汤姆塔什+1给你。我在谷歌搜索“jersey and springservlet招摇过市”时发现了这个问题,这也是我的问题。@TomTasche and fas对你来说+1这肯定挽救了我的一些脑细胞