praveen Vijayan created AXIS2-5354:
--------------------------------------

             Summary: JNDI NameNotFoundException with Axis2 1.6.2 JAXWS 
webservice.
                 Key: AXIS2-5354
                 URL: https://issues.apache.org/jira/browse/AXIS2-5354
             Project: Axis2
          Issue Type: Bug
          Components: jaxws
    Affects Versions: 1.6.2
         Environment: JDK 1.6, Tomcat 7
            Reporter: praveen Vijayan


I am facing a problem with JNDI lookup when we moved our JAX-WS based web 
service from Axis2 1.6.1 to axis 1.6.2 library.

Following is the exception that gets thrown from the Impl class :

Caused by: javax.naming.NameNotFoundException: Name java:comp is not bound in 
this Context
    at org.apache.naming.NamingContext.lookup(NamingContext.java:803)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:159)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    

The service runs on Tomcat 7 (JDK 6) and deployed as a WAR application. It was 
working fine (i.e. it was able to lookup the name) when I was using 1.6.1 
version of axis jar.I have declared the JNDI resource names in context.xml.The 
problem started when I discarded 1.6.1 jars and started using 1.6.2 Axis2 jars.

It looks like the issue is happening due to Thread Context Class Loader (TCCL) 
setting in JAXWSMessageReceiver.java.Here is the block of code that I suspect 
is causing the issue for us.

        AxisService service = axisRequestMsgCtx.getAxisService();
        // we need to set the deployment class loader as the TCCL. This is 
because, in JAX-WS
        // services, there can be situations where we have to load classes from 
the deployment
        // artifact (JAX-WS jar file) in the message flow. Ex: Handler classes 
in the service
        // artifact. Adding this as a fix for AXIS2-4930.
        setContextClassLoader(service.getClassLoader());
        
I think when the service class's class loader is set as TCCL, the JNDI object 
present in WebAppClassLoader become invisible to the current TCCL. If I comment 
'setContextClassLoader(...)' statement the JNDI lookup passes (i.e. it works 
fine.).



--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to