小编Rya*_*yan的帖子

从Spring-Jersey 1.x迁移到2.x.

我一直在使用Spring 3.1和Spring-Jersey 1.x,Jackson 2.x和Hibernate.我想升级到Spring-Jersey 2.6.

我根据Jersey用户指南和示例应用程序包含了所有相关的依赖项.我有一种感觉,我的问题可能与我使用Jackson和JAXB注释的POJO有关,但我似乎无法弄清楚如何前进.杰克逊以前解析JAX-B注释似乎没有任何问题,所以我不知道如何修改我的配置.

我的应用程序看起来像:

    public class MyApplication extends ResourceConfig {

        public MyApplication(){
            packages(true,"com.my.app");
            register(JacksonContextResolver.class); //Custom Context Resolver
            register(JacksonFeature.class);
        }
    }
Run Code Online (Sandbox Code Playgroud)

在启动时我收到此错误:

    MultiException stack 1 of 3
    java.lang.NullPointerException
        at com.sun.jersey.core.provider.jaxb.AbstractJAXBProvider.setConfiguration(AbstractJAXBProvider.java:109)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.glassfish.hk2.utilities.reflection.ReflectionHelper.invoke(ReflectionHelper.java:1017)
        at org.jvnet.hk2.internal.ClazzCreator.methodMe(ClazzCreator.java:375)
        at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:428)
        at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:456)
        at org.jvnet.hk2.internal.PerLookupContext.findOrCreate(PerLookupContext.java:69)
        at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2445)
        at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:98)
        at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:87)
        at org.glassfish.jersey.internal.inject.ProviderToService.apply(ProviderToService.java:58)
        at org.glassfish.jersey.internal.inject.ProviderToService.apply(ProviderToService.java:54)
        at jersey.repackaged.com.google.common.collect.Iterators$8.transform(Iterators.java:860)
        at jersey.repackaged.com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
        at java.util.AbstractCollection.addAll(AbstractCollection.java:333)
        at java.util.LinkedHashSet.<init>(LinkedHashSet.java:169)
        at jersey.repackaged.com.google.common.collect.Sets.newLinkedHashSet(Sets.java:292)
        at org.glassfish.jersey.internal.inject.Providers.getClasses(Providers.java:364)
        at org.glassfish.jersey.internal.inject.Providers.getProviders(Providers.java:186)
        at org.glassfish.jersey.message.internal.MessageBodyFactory.<init>(MessageBodyFactory.java:304)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) …
Run Code Online (Sandbox Code Playgroud)

java spring json jaxb jersey-2.0

10
推荐指数
1
解决办法
6603
查看次数

JAX-RS/Jersey + Tomcat ServletContext为null

我正在尝试获取在Tomcat中部署的Jersey资源的servlet上下文,但每当我尝试这个时,我得到一个空指针异常.我的代码如下:

@Path("/resource")
public class MyResource {

@Context ServletContext context;

public MyResource(){

    System.out.println("Context: "+context.getRealPath("/"));

}

}
Run Code Online (Sandbox Code Playgroud)

我的web.xml配置如下:

<servlet>
  <servlet-name>MyResource</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.mypackage</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>MyResource</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>   
Run Code Online (Sandbox Code Playgroud)

任何线索我的问题可能是什么?使用Tomcat 6.0.33和Jersey 1.12.

tomcat servlets jax-rs jersey

3
推荐指数
1
解决办法
3633
查看次数

标签 统计

java ×1

jax-rs ×1

jaxb ×1

jersey ×1

jersey-2.0 ×1

json ×1

servlets ×1

spring ×1

tomcat ×1