Hi
I managed to run it on full GF 3.1 b40 and everything works.
Next, I have copied jaxb jars you mentioned above to the following
locations (as in GF 3.1 full)
jaxb-api-osgi.jar to modules/endorsed
jaxb-osgi to modules
from now everything works as a charm.
regards
Jakub Milkiewicz
2011/1/31 jmilkiewicz_at_gmail.com <jmilkiewicz_at_gmail.com>:
> Hi Pavel
>
> Thanks for a fast answer but unfortunately it still does not work.
>
> 1 - adding jaxb-api-osgi-2.2.2.jar and jaxb-osgi-2.2.3-1.jar to GF 3.1
> modules folder
> blows out glassfish: my application and admin console are not
> deployed/reachable.
> In my log file i can see:
>
> SEVERE: Exception while loading the app : java.lang.RuntimeException:
> java.lang.NullPointerException
> com.google.common.collect.ComputationException:
> java.lang.RuntimeException: java.lang.NullPointerException
> at com.google.common.collect.ComputingConcurrentHashMap.compute(ComputingConcurrentHashMap.java:218)
> at com.google.common.collect.ComputingConcurrentHashMap.apply(ComputingConcurrentHashMap.java:100)
> at com.google.common.collect.MapMaker$ComputingMapAdapter.get(MapMaker.java:515)
> at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:183)
> at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:96)
> at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:133)
> at org.jboss.weld.bootstrap.BeanDeployment.deployBeans(BeanDeployment.java:192)
> at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:364)
> at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:170)
> at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:128)
> at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:262)
> at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:460)
> at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
> at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:370)
> at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:354)
> at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:369)
> at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1080)
> at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
> at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1260)
> at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1248)
> at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:453)
> at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:220)
> at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
> at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
> at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:234)
> at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
> at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
> at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
> at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
> at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
> at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
> at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
> at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
> at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
> at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
> at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
> at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
> at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.RuntimeException: java.lang.NullPointerException
> at org.jboss.weld.util.reflection.SecureReflectionAccess.runAndWrap(SecureReflectionAccess.java:71)
> at org.jboss.weld.util.reflection.SecureReflections.getDeclaredFields(SecureReflections.java:111)
> at org.jboss.weld.introspector.jlr.WeldClassImpl.<init>(WeldClassImpl.java:163)
> at org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:124)
> at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:54)
> at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:42)
> at com.google.common.collect.ComputingConcurrentHashMap.compute(ComputingConcurrentHashMap.java:206)
> ... 38 more
> Caused by: java.lang.NullPointerException
> at org.apache.felix.framework.resolver.ResolverImpl.permutateIfNeeded(ResolverImpl.java:1140)
> at org.apache.felix.framework.resolver.ResolverImpl.checkPackageSpaceConsistency(ResolverImpl.java:1066)
> at org.apache.felix.framework.resolver.ResolverImpl.resolve(ResolverImpl.java:176)
> at org.apache.felix.framework.Felix$FelixResolver.resolve(Felix.java:4066)
> at org.apache.felix.framework.ModuleImpl.searchDynamicImports(ModuleImpl.java:1412)
> at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:734)
> at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
> at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> at org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:645)
> at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1604)
> at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:904)
> at org.jvnet.hk2.osgiadapter.OSGiModuleImpl$3$1.run(OSGiModuleImpl.java:399)
> at java.security.AccessController.doPrivileged(Native Method)
> at org.jvnet.hk2.osgiadapter.OSGiModuleImpl$3.loadClass(OSGiModuleImpl.java:395)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> at com.sun.enterprise.v3.server.APIClassLoaderServiceImpl$APIClassLoader.loadClass(APIClassLoaderServiceImpl.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:296)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:296)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1465)
> at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1368)
> at java.lang.Class.getDeclaredFields0(Native Method)
> at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
> at java.lang.Class.getDeclaredFields(Class.java:1743)
> at org.jboss.weld.util.reflection.SecureReflections$4.work(SecureReflections.java:116)
> at org.jboss.weld.util.reflection.SecureReflections$4.work(SecureReflections.java:112)
> at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:54)
> at org.jboss.weld.util.reflection.SecureReflectionAccess.runAndWrap(SecureReflectionAccess.java:67)
> ... 44 more
>
> When comparing GF 3.0.1 b22 with GF 3.1 b40 i noticed that
> beside the latter having jaxb jars removed from modules folder i think
> there are some changes in felix config.properties file. Maybe i need
> to investigate it further...
>
>
> 2. adding jaxb-osgi-2.2.3-1.jar to WEB-INF/lib and setting
> class-loader delegate to false does not work either.
>
> SEVERE: NATURAL JSON notation configured, but JAXB RI 2.1.10 not
> found. For the recent builds to get this working correctly, you need
> even at least JAXB version 2.1.12. Please add it to your classpath!
> SEVERE: The provider class, class
> pl.assetwell.demo.infrastructure.MyJAXBContextResolver, could not be
> instantiated. Processing will continue but the class will not be
> utilized
> java.lang.RuntimeException: NATURAL JSON notation configured, but JAXB
> RI 2.1.10 not found. For the recent builds to get this working
> correctly, you need even at least JAXB version 2.1.12. Please add it
> to your classpath!
> at com.sun.jersey.api.json.JSONConfiguration.natural(JSONConfiguration.java:447)
> at pl.assetwell.demo.infrastructure.MyJAXBContextResolver.<init>(MyJAXBContextResolver.java:25)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>
>
> This time i think i know why it can't work:
> I understand that class-loader delegate=false forces application (war)
> to first load classes itself before delegation to parent (server)
> classloader (PARENT-LAST).
> If my understanding is correct than this approach can not work since
> it is not class within my application is trying to load JAXB RI
> 2.1.12. According to stacktrace (above) JSONConfiguration tries to
> check if proper version of JAXB is
> present by execution of:
> Class.forName("com.sun.xml.bind.annotation.OverrideAnnotationOf");
>
> Since JSONConfiguration is bundled in jersey-json.jar withing GF
> modules it will use it is own classloader or any other
> parent(server)/OSGI classloader to find OverrideAnnotationOf class.
> None of these classloaders will have access to application
> classloader. Am i right on this ?
>
> I can imagine i could copy some jersey-jars along with jaxb jars to
> WEB-INF/lib and then specify class-loader delegate=false but this is
> not what i would like to do...
>
> I will try to check it with full GF 3.1 b40 or another/new build.
>
>
> regards
> Jakub Milkiewicz
>
>
> 2011/1/31 Pavel Bucek-2 [via Jersey]
> <ml-node+5977495-628773308-315806_at_n2.nabble.com>:
>> Hello Jakub,
>>
>> generally - update your java runtime; unfortunately, we currently
>> available jdk versions don't have that recent jaxb version, so ..
>>
>> I guess putting jaxb-api-osgi.jar [1] and jaxb-osgi.jar [2] into
>> glassfish/modules should work that out. Or you can upgrade to full
>> profile, which provides newer jaxb implementation.
>>
>> Or, if you don't want to update your local glassfish installation, you
>> could be able to package jaxb-osgi.jar into war and deploy it with your
>> application; you might need to set classloader delegation to false
>> (sun-web.xml: <class-loader delegate="false"/>).
>>
>> Regards,
>> Pavel
>>
>> [1]
>> http://download.java.net/maven/2/javax/xml/bind/jaxb-api-osgi/2.2.2/jaxb-api-osgi-2.2.2.jar
>> [2]
>> http://download.java.net/maven/2/com/sun/xml/bind/jaxb-osgi/2.2.3-1/jaxb-osgi-2.2.3-1.jar
>>
>> On 01/31/2011 03:45 PM, [hidden email] wrote:
>>> Hi
>>>
>>> I am not sure if this mail should not be sent to glassfish user group
>>> but i hope i can find some help here:
>>>
>>> I am trying to use JSON natural notation
>>>
>>> JAXBContext context = new
>>> JSONJAXBContext(JSONConfiguration.natural().build()...
>>>
>>> The application worked as a charm on GF 3.0.1 but on GF 3.1. b40 web
>>> profile (current the latest one as of yesterday) i got a nasty
>>> exception with following header message:
>>>
>>> SEVERE: NATURAL JSON notation configured, but JAXB RI 2.1.10 not
>>> found. For the recent builds to get this working correctly, you need
>>> even at least JAXB version 2.1.12. Please add it to your classpath!
>>> SEVERE: The provider class, class foo.bar.MyJAXBContextResolver, could
>>> not be instantiated. Processing will continue but the class will not
>>> be utilized
>>>
>>> Generally ,how to upgrade to JAXB 2.1 provided that JAXB 2 classes are
>>> already bundled within JDK?
>>>
>>>
>>> How to make an upgrade on GF 3.1 which does not have any of JAXB api/
>>> JAXB impl osgified versions at all ( GF 3.0.1 indeed had jaxb-api-osgi
>>> and jaxb-osgi.jar ) ?
>>>
>>> regards Jakub Milkiewicz
>>>
>>>
>>
>>
>> ________________________________
>> If you reply to this email, your message will be added to the discussion
>> below:
>> http://jersey.576304.n2.nabble.com/JSON-natural-on-GF-3-1-b40-tp5977358p5977495.html
>> To start a new topic under Jersey, email
>> ml-node+576304-221093730-315806_at_n2.nabble.com
>> To unsubscribe from Jersey, click here.
>
--
View this message in context: http://jersey.576304.n2.nabble.com/JSON-natural-on-GF-3-1-b40-tp5977358p5979171.html
Sent from the Jersey mailing list archive at Nabble.com.