dev@jersey.java.net

Re: [Jersey] classloading issue in Glassfish when older version jersey-bundle.jar is present

From: Edward Chou <Edward.Chou_at_Sun.COM>
Date: Thu, 24 Sep 2009 17:17:19 -0700

Okay thanks.

It might not be possible for me to update the jersey.jar in the
"glassfish/lib" directory, for various other reasons. So I guess my
only choice is to not packaging jersey.jar in my own application, and
just have use the older version of jersey.jar from Glassfish
installation. /cry



Craig McClanahan wrote:
> Edward Chou wrote:
>> Hi Paul,
>>
>> I am using a version of Glassfish that is packaging
>> "jersey-bundle-1.0.3.1.jar" in the "glassfish/lib" directory.
>> However, I am deploying a Jersey application that also packages a new
>> version of "jersey-bundle-1.1.1-ea.jar" in its classpath. As a
>> result, I am getting the below exception in the server.log about
>> IllegalAccessException. If I remove the jersey-bundle.jar from the
>> "glassfish/lib" directory, then I don't see this exception.
> Hmm ... trying to mix revs of the same package is almost always going
> to fail with problems like this.
>>
>> My question is, do you know anyway to get around this problem,
>> without having to update/remove the "glassfish/lib" directory Jersey
>> jar? Anyway to force my Jersey application to use the newer Jersey
>> jar that is packaged in the application?
>>
> Have you tried just replacing the
> glassfish/lib/jersey-bundle-1.0.3.1.jar with your
> jersey-bundle-1.1.1-ea.jar, and then *not* including the Jersey jar in
> your webapp? (No guarantees that you won't run into other
> incompatibilities if Glassfish does not know how to deal with Jersey
> 1.1, but at least you won't have two versions of the same classes on
> the classpath at the same time.)
>
> Craig
>
>> Thanks,
>> Edward
>>
>> [#|2009-09-24T14:23:49.121-0700|SEVERE|sun-appserver2.1|com.sun.jersey.core.spi.component.ProviderFactory|_ThreadID=26;_ThreadName=http9696-WorkerThread(0);_RequestID=5eb1b7ea-6265-438c-9270-b01b9ea4b2e1;|The
>> provider class, class
>> com.sun.jersey.json.impl.provider.entity.JSONObjectProvider, could
>> not be instantiated. Processing will continue but the class will not
>> be utilized
>> java.lang.IllegalAccessException: Class
>> com.sun.jersey.core.spi.component.ComponentConstructor can not access
>> a member of class
>> com.sun.jersey.json.impl.provider.entity.JSONObjectProvider with
>> modifiers ""
>> at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
>> at java.lang.Class.newInstance0(Class.java:349)
>> at java.lang.Class.newInstance(Class.java:308)
>> at
>> com.sun.jersey.core.spi.component.ComponentConstructor._getInstance(ComponentConstructor.java:152)
>>
>> at
>> com.sun.jersey.core.spi.component.ComponentConstructor.getInstance(ComponentConstructor.java:140)
>>
>> at
>> com.sun.jersey.core.spi.component.ProviderFactory.__getComponentProvider(ProviderFactory.java:159)
>>
>> at
>> com.sun.jersey.core.spi.component.ProviderFactory.getComponentProvider(ProviderFactory.java:130)
>>
>> at
>> com.sun.jersey.core.spi.component.ProviderServices.getComponent(ProviderServices.java:190)
>>
>> at
>> com.sun.jersey.core.spi.component.ProviderServices.getProvidersAndServices(ProviderServices.java:120)
>>
>> at
>> com.sun.jersey.core.spi.factory.MessageBodyFactory.initWriters(MessageBodyFactory.java:171)
>>
>> at
>> com.sun.jersey.core.spi.factory.MessageBodyFactory.init(MessageBodyFactory.java:146)
>>
>> at
>> com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:609)
>>
>> at
>> com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:419)
>>
>> at
>> com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:377)
>>
>> at
>> com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:242)
>>
>> at
>> com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:455)
>>
>> at
>> com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:178)
>>
>> at
>> com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:281)
>>
>> at
>> com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:442)
>>
>> at javax.servlet.GenericServlet.init(GenericServlet.java:270)
>> at
>> com.sun.grizzly.http.servlet.ServletAdapter.loadServlet(ServletAdapter.java:327)
>>
>> at
>> com.sun.grizzly.http.servlet.ServletAdapter.service(ServletAdapter.java:268)
>>
>> at
>> com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:165)
>>
>> at
>> com.sun.grizzly.tcp.http11.GrizzlyAdapterChain.service(GrizzlyAdapterChain.java:185)
>>
>> at
>> com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:165)
>>
>> at
>> com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:726)
>> at
>> com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:615)
>> at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:895)
>> at
>> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:162)
>>
>> at
>> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:136)
>>
>> at
>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:103)
>>
>> at
>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:89)
>>
>> at
>> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
>>
>> at
>> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:67)
>>
>> at
>> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
>>
>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>>
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>>
>> at java.lang.Thread.run(Thread.java:619)
>> |#]
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe_at_jersey.dev.java.net
>> For additional commands, e-mail: dev-help_at_jersey.dev.java.net
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: dev-help_at_jersey.dev.java.net
>