Jersey/REST--NoSuchMethodError: com.sun.jersey.core.reflection.ReflectionHelper.getContextClassLoaderPA()Ljava/security/PrivilegedAction; [英] Jersey/REST--NoSuchMethodError: com.sun.jersey.core.reflection.ReflectionHelper.getContextClassLoaderPA()Ljava/security/PrivilegedAction;

查看:24
本文介绍了Jersey/REST--NoSuchMethodError: com.sun.jersey.core.reflection.ReflectionHelper.getContextClassLoaderPA()Ljava/security/PrivilegedAction;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I get the NoSuchMethodError when trying build the REST service using jersey. Any help would be much appreciated.

My POM.xml :

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

My web.xml :

<servlet>
    <servlet-name>Rest</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>com.example.serversideauthservice.resources.AuthResource</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Rest</servlet-name>
    <url-pattern>/auth/*</url-pattern>
</servlet-mapping>

Not sure what I am doing wrong, but when I checked the API docs, it seems I have the right version in the mvn dependancies.

Here is the stacktrace during run time.

[INFO] INFO: Scanning for root resource and provider classes in the packages:
[INFO]   com.example.serversideauthservice.resources.AuthResource
[INFO] Feb 21, 2015 2:35:26 PM com.google.apphosting.utils.jetty.JettyLogger warn
**[INFO] WARNING: failed Rest: java.lang.NoSuchMethodError: com.sun.jersey.core.reflection.ReflectionHelper.getContextClassLoaderPA()Ljava/security/PrivilegedAction;**
[INFO] Feb 21, 2015 2:35:26 PM com.google.apphosting.utils.jetty.JettyLogger warn
[INFO] WARNING: failed com.google.appengine.tools.development.DevAppEngineWebAppContext@7f74a932{/,D:	axmarkets_main	axmarket	arget	axmarket-1.0-SNAPSHOT}: java.lang.NoSuchMethodError: com.sun.jersey.core.reflection.ReflectionHelper.getContextClassLoaderPA()Ljava/security/PrivilegedAction;
[INFO] Feb 21, 2015 2:35:26 PM com.google.apphosting.utils.jetty.JettyLogger warn
[INFO] WARNING: failed JettyContainerService$ApiProxyHandler@660382ce: java.lang.NoSuchMethodError: com.sun.jersey.core.reflection.ReflectionHelper.getContextClassLoaderPA()Ljava/security/PrivilegedAction;
[INFO] Feb 21, 2015 2:35:26 PM com.google.apphosting.utils.jetty.JettyLogger warn
[INFO] WARNING: Error starting handlers
[INFO] java.lang.NoSuchMethodError: com.sun.jersey.core.reflection.ReflectionHelper.getContextClassLoaderPA()Ljava/security/PrivilegedAction;
[INFO]  at com.sun.jersey.spi.scanning.AnnotationScannerListener.<init>(AnnotationScannerListener.java:94)
[INFO]  at com.sun.jersey.spi.scanning.PathProviderScannerListener.<init>(PathProviderScannerListener.java:59)
[INFO]  at com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:79)
[INFO]  at com.sun.jersey.api.core.PackagesResourceConfig.init(PackagesResourceConfig.java:104)
[INFO]  at com.sun.jersey.api.core.PackagesResourceConfig.<init>(PackagesResourceConfig.java:78)
[INFO]  at com.sun.jersey.api.core.PackagesResourceConfig.<init>(PackagesResourceConfig.java:89)
[INFO]  at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:696)
[INFO]  at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:674)
[INFO]  at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:205)

解决方案

I faced the issue too recently. Check if class with name com.sun.jersey.core.reflection.ReflectionHelper is present in any other jar.

For me I had caliper.jar also, and it was being loaded from there instead. That class did not have getContextClassLoaderPA.

Do a grep -ir com.sun.jersey.core.reflection.ReflectionHelper * to see if any other jar shows up the same class.

这篇关于Jersey/REST--NoSuchMethodError: com.sun.jersey.core.reflection.ReflectionHelper.getContextClassLoaderPA()Ljava/security/PrivilegedAction;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆