Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001739 [Resin] minor always 05-16-07 23:53 05-31-07 16:30
Reporter hazurek View Status public  
Assigned To ferg
Priority normal Resolution fixed Platform
Status closed   OS
Projection none   OS Version
ETA none Fixed in Version 3.1.2 Product Version 3.0.19
  Product Build
Summary 0001739: Using jndi-link instead of direct using Properties is not working when connecting to Glassfish.
Description I try to connect from Resin to Remote EJB 3.0 deployed at Glassfish.
I follow instructions at https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html#nonJavaEEwebcontainerRemoteEJB. [^]

So when I use properties when constructing InitialContext:

    Properties props = new Properties();

    props.setProperty("java.naming.factory.initial",
            "com.sun.enterprise.naming.SerialInitContextFactory");
    props.setProperty("java.naming.factory.url.pkgs",
            "com.sun.enterprise.naming");
    props.setProperty("java.naming.factory.state",
            "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");

    Context ic2 = (Context)new InitialContext(props);
    EJBKESessionFacade facade = (EJBKESessionFacade)ic2.lookup("test.EJBKESessionFacade");

all is working.

But when I try to use jndi-link at resin.conf:

        <jndi-link>
          <jndi-name>java:comp/env/ejb</jndi-name>
          <factory>com.sun.enterprise.naming.SerialInitContextFactory</factory>
        <init-param java.naming.factory.url.pkgs="com.sun.enterprise.naming"/>
        <init-param java.naming.factory.state="com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl"/>
        </jndi-link>

and

    Context ic2 = (Context)new InitialContext().lookup("java:comp/env/ejb");

(EJBKESessionFacade)ic2.lookup("com.sitronicsts.ngage.ke.datalayer.core.EJBKESessionFacade");

I get exception

java.lang.NullPointerException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.sun.ejb.EJBUtils.lookupRemote30BusinessObject(EJBUtils.java:346)
    at com.sun.ejb.containers.RemoteBusinessObjectFactory.getObjectInstance(RemoteBusinessObjectFactory.java:61)
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
    at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:331)
    at com.caucho.naming.ContextImpl.lookupImpl(ContextImpl.java:214)
    at com.caucho.naming.ContextImpl.lookup(ContextImpl.java:168)
    at javax.naming.InitialContext.lookup(InitialContext.java:351)
    at com.caucho.naming.LinkProxy.createObject(LinkProxy.java:181)
    at com.caucho.naming.ContextImpl.dereference(ContextImpl.java:585)
    at com.caucho.naming.ContextImpl.lookupImpl(ContextImpl.java:209)
    at com.caucho.naming.ContextImpl.lookup(ContextImpl.java:168)
    at _jsp._test__jsp._jspService(test.jsp:42)
    at com.caucho.jsp.JavaPage.service(JavaPage.java:60)
    at com.caucho.jsp.Page.pageservice(Page.java:570)
    at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:175)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:268)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:389)
    at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:507)
    at com.caucho.util.ThreadPool.run(ThreadPool.java:433)
    at java.lang.Thread.run(Thread.java:595)

Environment entries of created context are:

java.naming.factory.initial=com.caucho.naming.InitialContextFactoryImpl

java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl:com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl:com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl:com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl

java.naming.factory.url.pkgs=com.caucho.naming:com.sun.enterprise.naming:com.sun.enterprise.naming:com.sun.enterprise.naming:com.sun.enterprise.naming

If I change code to

    Context ic2 = (Context)new InitialContext().lookup("java:comp/env/ejb");

        ic2.addToEnvironment("java.naming.factory.initial",
                "com.sun.enterprise.naming.SerialInitContextFactory");

(EJBKESessionFacade)ic2.lookup("com.sitronicsts.ngage.ke.datalayer.core.EJBKESessionFacade");


it is working.

What could be the problem?
Steps To Reproduce
Additional Information
Attached Files

- Relationships

- Notes
(0001987)
ferg
05-31-07 16:30

server/4401
 

- Issue History
Date Modified Username Field Change
05-16-07 23:53 hazurek New Issue
05-16-07 23:54 hazurek Issue Monitored: hazurek
05-31-07 16:30 ferg Note Added: 0001987
05-31-07 16:30 ferg Assigned To  => ferg
05-31-07 16:30 ferg Status new => closed
05-31-07 16:30 ferg Resolution open => fixed
05-31-07 16:30 ferg Fixed in Version  => 3.1.2


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
30 total queries executed.
26 unique queries executed.
Powered by Mantis Bugtracker