...
This results in a CNFE
http://pastebin.com/3tgtrhnx. The important piece
here is the static initialization block of the bean. This gets invoked
during the deployment stage when the TCCL is null.
Thinking a bit more about this -
shouldn't the user code (including this
static block initialization) be running in the TCCL corresponding to the
deployment CL?
-Jaikiran
The JAXP
DataTypeFactory relies on TCCL to be set. If the TCCL is null it just
throws a CNFE, like it does here, instead of falling back on the system
classloader. This probably is a bug in JAXP, since from what I see the
JAXP XMLInputFactory falls back to system classloader in the absence of
TCCL being set. @see
javax.xml.stream.SecuritySupport.getContextClassLoader() and compare it
to the buggy(?)
javax.xml.datatype.SecuritySupport.getContextClassLoader(). I think the
DataTypeFactory should be falling back to system classloader in the
absence of TCCL. Thoughts? How do we fix this?
As for a workaround, Jim, moving that static initialization into a
@PostConstruct method should get you past this issue.
-Jaikiran
On Saturday 23 July 2011 10:26 AM, Jaikiran Pai wrote:
> Missed this thread. Will look into this today.
>
> -Jaikiran
> On Saturday 23 July 2011 10:18 AM, Jason Greene wrote:
>> Did anyone look into this?
>>
>> Sent from my iPad
>>
>> On Jul 20, 2011, at 2:52 AM, Jim Ma<ema(a)redhat.com
>> <mailto:ema@redhat.com>> wrote:
>>
>>> I tried to deploy a webserivce endpoint impl with @Stateless
>>> annotation packaged in a war file which works with AS5 and AS6 into
>>> latest AS7 snapshot and got CNF exception.
>>> Below I list the error statck trace , endpoint impl class and the
>>> web.xml used to deploy this ws endpoint. From the error stack trace
>>> , it looks like the issue in ejb side ? But it works
>>> when I deploy this endpoint with an ejb jar file. Is it another
>>> classloader issue ?
>>>
>>> Thanks
>>> Jim
>>>
>>>
>>> -------------------error message------------------
>>>
>>> 1.
>>>
de/git-client/maerqiang-work/jboss-as/build/target/jboss-as-7.1.0.Alpha1-SNAPSHOT/standalone/data/wsdl/jaxws-benchmark-datatypes-pojo.war/EndpointWrappedRPCService.wsdl
>>> 2.
>>> 11:03:14,450 ERROR [stderr] (MSC service thread 1-12)
>>> javax.xml.datatype.DatatypeConfigurationException: Provider
>>> __redirected.__DatatypeFactory not found
>>> 3.
>>> 11:03:14,451 ERROR [stderr] (MSC service thread 1-12) at
>>>
javax.xml.datatype.DatatypeFactory.newInstance(DatatypeFactory.java:137)
>>> 4.
>>> 11:03:14,451 ERROR [stderr] (MSC service thread 1-12) at
>>>
org.jboss.test.ws.jaxws.benchmark.test.datatypes.EndpointPOJOWrappedDocImpl.<clinit>(EndpointPOJOWrappedDocImpl.java:54)
>>> 5.
>>> 11:03:14,452 ERROR [stderr] (MSC service thread 1-12) at
>>> sun.misc.Unsafe.ensureClassInitialized(Native Method)
>>> 6.
>>> 11:03:14,452 ERROR [stderr] (MSC service thread 1-12) at
>>>
sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)
>>> 7.
>>> 11:03:14,453 ERROR [stderr] (MSC service thread 1-12) at
>>>
sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
>>> 8.
>>> 11:03:14,453 ERROR [stderr] (MSC service thread 1-12) at
>>> java.lang.reflect.Field.acquireFieldAccessor(Field.java:918)
>>> 9.
>>> 11:03:14,454 ERROR [stderr] (MSC service thread 1-12) at
>>> java.lang.reflect.Field.getFieldAccessor(Field.java:899)
>>> 10.
>>> 11:03:14,454 ERROR [stderr] (MSC service thread 1-12) at
>>> java.lang.reflect.Field.get(Field.java:358)
>>> 11.
>>> 11:03:14,454 ERROR [stderr] (MSC service thread 1-12) at
>>>
org.jboss.invocation.proxy.AbstractProxyFactory$MethodAccessibilitySetter.run(AbstractProxyFactory.java:253)
>>> 12.
>>> 11:03:14,455 ERROR [stderr] (MSC service thread 1-12) at
>>>
org.jboss.invocation.proxy.AbstractProxyFactory$MethodAccessibilitySetter.run(AbstractProxyFactory.java:244)
>>> 13.
>>> 11:03:14,455 ERROR [stderr] (MSC service thread 1-12) at
>>> java.security.AccessController.doPrivileged(Native Method)
>>> 14.
>>> 11:03:14,456 ERROR [stderr] (MSC service thread 1-12) at
>>>
org.jboss.invocation.proxy.AbstractProxyFactory.afterClassLoad(AbstractProxyFactory.java:108)
>>> 15.
>>> 11:03:14,456 ERROR [stderr] (MSC service thread 1-12) at
>>>
org.jboss.invocation.proxy.AbstractClassFactory.defineClass(AbstractClassFactory.java:158)
>>> 16.
>>> 11:03:14,457 ERROR [stderr] (MSC service thread 1-12) at
>>>
org.jboss.invocation.proxy.AbstractProxyFactory.getCachedMethods(AbstractProxyFactory.java:118)
>>> 17.
>>> 11:03:14,457 ERROR [stderr] (MSC service thread 1-12) at
>>>
org.jboss.as.ejb3.component.stateless.StatelessComponentDescription$2.configure(StatelessComponentDescription.java:121)
>>> 18.
>>> 11:03:14,457 ERROR [stderr] (MSC service thread 1-12) at
>>>
org.jboss.as.ee.component.ComponentDescription$DefaultFirstConfigurator.configure(ComponentDescription.java:778)
>>> 19.
>>> 11:03:14,458 ERROR [stderr] (MSC service thread 1-12) at
>>>
org.jboss.as.ee.component.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:65)
>>> 20.
>>> 11:03:14,458 ERROR [stderr] (MSC service thread 1-12) at
>>>
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115)
>>> 21.
>>> 11:03:14,459 ERROR [stderr] (MSC service thread 1-12) at
>>>
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765)
>>> 22.
>>> 11:03:14,459 ERROR [stderr] (MSC service thread 1-12) at
>>>
org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291)
>>> 23.
>>> 11:03:14,459 ERROR [stderr] (MSC service thread 1-12) at
>>>
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
>>> r.java:886)
>>> 24.
>>> 11:03:14,460 ERROR [stderr] (MSC service thread 1-12) at
>>>
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>> 25.
>>> 11:03:14,460 ERROR [stderr] (MSC service thread 1-12) at
>>> java.lang.Thread.run(Thread.java:662)
>>> 26.
>>> 11:03:14,461 ERROR [stderr] (MSC service thread 1-12) Caused
>>> by: java.lang.ClassNotFoundException:
>>> __redirected/__DatatypeFactory
>>> 27.
>>> 11:03:14,461 ERROR [stderr] (MSC service thread 1-12) at
>>> java.lang.Class.forName0(Native Method)
>>> 28.
>>> 11:03:14,462 ERROR [stderr] (MSC service thread 1-12) at
>>> java.lang.Class.forName(Class.java:247)
>>> 29.
>>> 11:03:14,462 ERROR [stderr ] (MSC service thread 1-12) at
>>>
javax.xml.datatype.FactoryFinder.getProviderClass(FactoryFinder.java:121)
>>> 30.
>>> 11:03:14,463 ERROR [stderr] (MSC service thread 1-12) at
>>> javax.xml.datatype.FactoryFinder.newInstance(FactoryFinder.java:146)
>>> 31.
>>> 11:03:14,463 ERROR [stderr] (MSC service thread 1-12) at
>>> javax.xml.datatype.FactoryFinder.find(FactoryFinder.java:187)
>>> 32.
>>> 11:03:14,463 ERROR [stderr] (MSC service thread 1-12) at
>>>
javax.xml.datatype.DatatypeFactory.newInstance(DatatypeFactory.java:131)
>>> 33.
>>> 11:03:14,464 ERROR [stderr] (MSC service thread 1-12) ... 22 more
>>>
>>> -------------------EndpointPOJOWrappedDocImpl.java------------------
>>> @WebService(serviceName = "EndpointWrappedDocService", portName =
>>> "EndpointWrappedDocPort", endpointInterface =
>>>
"org.jboss.test.ws.jaxws.benchmark.test.datatypes.EndpointWrappedDoc")
@Stateless
>>> public class EndpointPOJOWrappedDocImpl implements EndpointDoc {
>>> private static Duration dayDuration; static { try { dayDuration =
>>> DatatypeFactory.newInstance().newDuration(86400000L); } catch
>>> (DatatypeConfigurationException e) { dayDuration = null;
>>> e.printStackTrace(); } } private static final List<String>
>>> stringList; static { stringList = new ArrayList<String>(); for (int i
>>> = 0; i< 10; i++) { stringList.add("item " + i); } } public
String
>>> sayHello(String toWhom) { String greeting = "Hello World Greeting for
>>> '" + toWhom + "' today"; return greeting; } }
>>> -------web.xml----------<?xml version="1.0"
encoding="UTF-8"?>
>>> <web-app
xmlns="http://java.sun.com/xml/ns/j2ee"
>>>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
>>>
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
>>> <servlet>
<servlet-name>EndpointPOJOWrappedDocImpl</servlet-name>
>>>
<servlet-class>org.jboss.test.ws.jaxws.benchmark.test.datatypes.EndpointPOJOWrappedDocImpl</servlet-class>
>>> </servlet> <servlet-mapping>
>>> <servlet-name>EndpointPOJOWrappedDocImpl</servlet-name>
>>> <url-pattern>/EndpointPOJOWrappedDocImpl</url-pattern>
>>> </servlet-mapping> </web-app>
>>>
>>>
>>>
>>> _______________________________________________
>>> jboss-as7-dev mailing list
>>> jboss-as7-dev@lists.jboss.org<mailto:jboss-as7-dev@lists.jboss.org>
>>>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>
>>
>> _______________________________________________
>> jboss-as7-dev mailing list
>> jboss-as7-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>
> _______________________________________________
> jboss-as7-dev mailing list
> jboss-as7-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
_______________________________________________
jboss-as7-dev mailing list
jboss-as7-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev