简体   繁体   English

HTTP状态500-Servlet球衣-serlvet的Servlet.init()抛出异常?

[英]HTTP Status 500 - Servlet.init() for servlet jersey-serlvet threw exception?

I'm trying create a Web Service RESTFUL using Jersey with Maven and Tomcat. 我正在尝试使用带有Maven和Tomcat的Jersey创建Web服务RESTFUL。 When I do execute my webservice, does throws some exceptions and doesn't works. 当我执行我的Web服务时,确实会抛出一些异常并且不起作用。

How could I solve it ? 我该如何解决?

URL 网址

http://localhost:8080/FerpaWS/ws/cliente http:// localhost:8080 / FerpaWS / ws / cliente

Service 服务

package br.com.ferpa.ws;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.json.JSONObject;

@Path("/")
public class Cliente {

    @GET
    @Path("/cliente")
    @Consumes(MediaType.APPLICATION_JSON)
    public Response getNome(){
       JSONObject obj = new JSONObject();
       obj.put("nome", "fernando paiva");
       return Response.status(200).entity(obj.toString()).build();
    }    
}

web.xml web.xml中

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     version="3.1">

    <display-name>FerpaWS</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>

    <servlet>
        <servlet-name>jersey-serlvet</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
             <param-name>com.sun.jersey.config.property.packages</param-name>
             <param-value>br.com.ferpa.ws</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>jersey-serlvet</servlet-name>
        <url-pattern>/ws/*</url-pattern>
    </servlet-mapping>
</web-app>

pom.xml 的pom.xml

<dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>

        <!-- WS -->
        <dependency>
            <groupId>asm</groupId>
            <artifactId>asm</artifactId>
            <version>3.3.1</version>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-core</artifactId>
            <version>1.19</version>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-server</artifactId>
            <version>1.19</version>
        </dependency>

        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
            <version>1.1.1</version>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-json</artifactId>
            <version>1.19</version>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-bundle</artifactId>
            <version>1.14</version>
        </dependency>

        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20141113</version>
        </dependency>

        <dependency>
            <groupId>org.glassfish</groupId>
            <artifactId>javax.json</artifactId>
            <version>1.0.4</version>
        </dependency>

        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1</version>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey.contribs</groupId>
            <artifactId>jersey-multipart</artifactId>
            <version>1.8</version>
        </dependency>

    </dependencies>

Exception 例外

exception

javax.servlet.ServletException: Servlet.init() for servlet jersey-serlvet threw exception
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
    org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)
root cause

java.lang.IllegalAccessError: tried to access method com.sun.jersey.core.reflection.ReflectionHelper.getContextClassLoader()Ljava/lang/ClassLoader; from class com.sun.jersey.spi.scanning.AnnotationScannerListener
    com.sun.jersey.spi.scanning.AnnotationScannerListener.<init>(AnnotationScannerListener.java:92)
    com.sun.jersey.spi.scanning.PathProviderScannerListener.<init>(PathProviderScannerListener.java:59)
    com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:79)
    com.sun.jersey.api.core.PackagesResourceConfig.init(PackagesResourceConfig.java:104)
    com.sun.jersey.api.core.PackagesResourceConfig.<init>(PackagesResourceConfig.java:78)
    com.sun.jersey.api.core.PackagesResourceConfig.<init>(PackagesResourceConfig.java:89)
    com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:700)
    com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:678)
    com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:203)
    com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:374)
    com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:557)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
    org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)

That error means you are mixing Jersey 1.x and 2.x. 该错误意味着您正在混合Jersey 1.x和2.x。 Both are totally incompatible, make sure that all your dependencies are of the same version. 两者都是完全不兼容的,请确保所有依赖项都具有相同的版本。

com.sun.jersey

is for Jersey 1.x. 适用于Jersey1.x。 It should not be used. 不应使用。

org.glassfish.jersey

is Jersey 2.x and should be used whenever possible. 是Jersey 2.x,应尽可能使用。

I see one issue in your code 我在您的代码中看到一个问题

@Path("/") <--- here
public class Cliente {

    @GET
    @Path("/cliente")

As per your code, the url to access getNome method would be 根据您的代码,访问getNome方法的URL将是

http://localhost:8080/FerpaWS/ws//cliente

But, you are accessing 但是,您正在访问

 http://localhost:8080/FerpaWS/ws/cliente

So, either you removed @Path("/") or name something @Path("/app") . 因此,您删除了@Path("/")或命名了@Path("/app") So, finally url would be 因此,最终url将是

http://localhost:8080/FerpaWS/ws/app/cliente

add the Maven dependencies in the Deployment Assembly or just clean and build you project. 在Deployment Assembly中添加Maven依赖项,或者只是清理并构建项目。

just right click on the project 只需右键单击该项目

Properties 属性

Deployment Assembly 部署组装

Add

It will open other window, in that choose 它将打开其他窗口,在该窗口中选择

Java Build Path Entries Java构建路径条目

click Next 点击下一步

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 HTTP状态500-Servlet球衣的Servlet.init()-Servlet抛出异常 - HTTP Status 500 - Servlet.init() for servlet jersey -servlet threw exception HTTP 状态 500 - servlet appServlet 的 Servlet.init() 抛出异常 - HTTP Status 500 - Servlet.init() for servlet appServlet threw exception HTTP状态500-Servlet Dispatcher的Servlet.init()抛出异常 - HTTP Status 500 - Servlet.init() for servlet Dispatcher threw exception HTTP状态500-Servlet HelloWeb的Servlet.init()抛出异常? - HTTP Status 500 - Servlet.init() for servlet HelloWeb threw exception? HTTP状态500 - servlet fitTrackerServlet的Servlet.init()引发异常 - HTTP Status 500 - Servlet.init() for servlet fitTrackerServlet threw exception HTTP状态500-Servlet appServlet的Servlet.init()抛出异常 - HTTP Status 500 - Servlet.init() for servlet appServlet threw exception “ HTTP状态500-Servlet的Servlet.init()引发了异常” - “HTTP Status 500 - Servlet.init() for servlet spring threw exception” 如何修复 HTTP 状态 500 - Servlet.init() for servlet jersey 抛出异常? - How can I fix HTTP Status 500 - Servlet.init() for servlet jersey threw exception? 我正在使用Jersey并且收到此错误“ HTTP状态500-Servlet jersey-Servlet抛出Servlet.init()” - I am using Jersey and I am getting this error “HTTP Status 500 - Servlet.init() for servlet jersey-servlet threw exception” HTTP 状态 500 javax.servlet.ServletException:servlet [Jersey RESTful App] 的 Servlet.init() 抛出异常 java.lang.IllegalArgumentException - HTTP Status 500 javax.servlet.ServletException: Servlet.init() for servlet [Jersey RESTful App] threw exception java.lang.IllegalArgumentException
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM