PS: did you try openejb.cxf.CxfContainerClassLoader=false in
conf/system.properties?


Romain Manni-Bucau
@rmannibucau
http://www.tomitribe.com
http://rmannibucau.wordpress.com
https://github.com/rmannibucau


2014-11-26 17:45 GMT+01:00 Romain Manni-Bucau <[email protected]>:
> we'll add a flag to switch it off but there is no issue on our side.
> You can solve it:
> 1) not using a new thread
> 2) using an EJB to execute the js
>
>
> Romain Manni-Bucau
> @rmannibucau
> http://www.tomitribe.com
> http://rmannibucau.wordpress.com
> https://github.com/rmannibucau
>
>
> 2014-11-26 17:34 GMT+01:00 Alex A <[email protected]>:
>> So? it worked in 1.5.2 and does not work anymore in 1.7.1.Even before 
>> starting the new thread the classloader is already this new 
>> CxfContainerClassLoader (see server trace) which seems unable to load 
>> CloudUtils from same webapp.
>> thank you
>>
>>
>>
>>> From: [email protected]
>>> Date: Wed, 26 Nov 2014 14:23:00 +0100
>>> Subject: Re: TomEE+ 1.7.1 Classloader gets replaced by 
>>> CxfContainerClassLoader which causes ClassNotFoundException in 
>>> Rhino/Nashorn ScriptEngine
>>> To: [email protected]
>>>
>>> Hi
>>>
>>> com.mycompany.bl.MyInstance#executeJavaScript starts a new thread and
>>> then look the classloader which is bound to the request thread
>>>
>>>
>>> Romain Manni-Bucau
>>> @rmannibucau
>>> http://www.tomitribe.com
>>> http://rmannibucau.wordpress.com
>>> https://github.com/rmannibucau
>>>
>>>
>>> 2014-11-26 13:27 GMT+01:00 Alex A <[email protected]>:
>>> > Bonjour Romain,
>>> >
>>> > Many thanks for your reply.
>>> > We have been able to shrink down our app into the attached sample.zip and 
>>> > it
>>> > does reproduce the issue!
>>> > The sample comprises a JAX-WS client and a webapp implementing the WS and
>>> > evaluating the input script.
>>> >
>>> >
>>> > TomEE+ 1.7.1:
>>> >
>>> >
>>> >
>>> > *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
>>> >
>>> > *-*-*- ExecuteJavaScript Issue *-*-*
>>> >
>>> > *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
>>> >
>>> > Connecting to WebServices at
>>> > http://localhost:8080/WebServiceProject/MyWebServiceWS
>>> >
>>> >
>>> >
>>> > *- Main menu -*
>>> >
>>> > 1. ExecuteJavaScript
>>> >
>>> > 2. Exit
>>> >
>>> > Your choice [Exit]? 1
>>> >
>>> >
>>> >
>>> > ExecuteJavaScript:
>>> >
>>> >> Entering console mode. Type in your script, then "run" to finish typing.
>>> >
>>> > com.mycompany.cloudutils.CloudUtils.nowStr()
>>> >
>>> > run
>>> >
>>> >
>>> >
>>> > ScriptException around line [ 
>>> > com.mycompany.cloudutils.CloudUtils.nowStr() ]
>>> >
>>> >>>> sun.org.mozilla.javascript.internal.EcmaError: TypeError: Cannot call
>>> >>>> property nowStr in object [JavaPackage 
>>> >>>> com.mycompany.cloudutils.CloudUtils].
>>> >>>> It is not a function, it is "object". (<Unknown source>#1) in <Unknown
>>> >>>> source> at line number 1
>>> >
>>> >
>>> >
>>> >
>>> > SERVER TRACE (showing the classloader is indeed CxfContainerClassLoader as
>>> > soon as we enter the @WebMethod):
>>> >
>>> > CLASSLOADER_FROMSTART:
>>> > org.apache.openejb.server.cxf.transport.util.CxfContainerClassLoader@7bb42c30
>>> > // when WS is called
>>> >
>>> > CLASSLOADER_EXECUTION:
>>> > org.apache.openejb.server.cxf.transport.util.CxfContainerClassLoader@7bb42c30
>>> > // at javascript execution
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > TomEE+ 1.5.2:
>>> >
>>> >
>>> >
>>> > *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
>>> >
>>> > *-*-*- ExecuteJavaScript Issue *-*-*
>>> >
>>> > *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
>>> >
>>> > Connecting to WebServices at
>>> > http://localhost:8080/WebServiceProject/MyWebServiceWS
>>> >
>>> >
>>> >
>>> > *- Main menu -*
>>> >
>>> > 1. ExecuteJavaScript
>>> >
>>> > 2. Exit
>>> >
>>> > Your choice [Exit]? 1
>>> >
>>> >
>>> >
>>> > ExecuteJavaScript:
>>> >
>>> >> Entering console mode. Type in your script, then "run" to finish typing.
>>> >
>>> > com.mycompany.cloudutils.CloudUtils.nowStr()
>>> >
>>> > run
>>> >
>>> >
>>> >
>>> > 2014/11/26 12:24:48.332 +0100
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > SERVER TRACE (showing we keep the StandardClassLoader all along):
>>> >
>>> > CLASSLOADER_FROMSTART: LazyStopWebappClassLoader
>>> >
>>> >   context: /WebServiceProject
>>> >
>>> >   delegate: false
>>> >
>>> >   repositories:
>>> >
>>> >     /WEB-INF/classes/
>>> >
>>> > ----------> Parent Classloader:
>>> >
>>> > org.apache.catalina.loader.StandardClassLoader@771c7eb2
>>> >
>>> >
>>> >
>>> > CLASSLOADER_EXECUTION: LazyStopWebappClassLoader
>>> >
>>> >   context: /WebServiceProject
>>> >
>>> >   delegate: false
>>> >
>>> >   repositories:
>>> >
>>> >     /WEB-INF/classes/
>>> >
>>> > ----------> Parent Classloader:
>>> >
>>> > org.apache.catalina.loader.StandardClassLoader@771c7eb2
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > Thank you for your precious help
>>> >
>>> > Alexandre
>>> >
>>> >
>>> >
>>

Reply via email to