[jboss-as7-dev] Issue in EJB ?

Jim Ma ema at redhat.com
Wed Jul 27 01:01:09 EDT 2011


Thanks for looking into this , Jaikiran.

On 07/23/2011 10:55 PM, Jaikiran Pai wrote:
> This one really doesn't have to do anything with Webservice or EJB. It's
> plain JAXP issue within AS7. Here's a bean/testcase which easily
> reproduces it
> https://github.com/jaikiran/jboss-as/commit/4e25a7771698c4745ac7594679f7331d3795c758.
> Here's the relevant part from that EJB code:
>
> @Stateless
> public class StatelessWSAccessingDataTypeFactory {
>
>       private static final Logger logger =
> Logger.getLogger(StatelessWSAccessingDataTypeFactory.class);
>
>       private static final Duration duration;
>
>       static {
>           try {
>               duration =
> DatatypeFactory.newInstance().newDuration(86400000L);
>          ...
>       }
>
> 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. 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 at redhat.com
>>> <mailto:ema at 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 at lists.jboss.org<mailto:jboss-as7-dev at lists.jboss.org>
>>>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>
>>> _______________________________________________
>>> jboss-as7-dev mailing list
>>> jboss-as7-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>> _______________________________________________
>> jboss-as7-dev mailing list
>> jboss-as7-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
> _______________________________________________
> jboss-as7-dev mailing list
> jboss-as7-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev



More information about the jboss-as7-dev mailing list