Are you running Tomcat and jBoss in the same VM?
        What version of Tomcat are you using?

        We've seen this recently with Tomcat and jBoss running separately
- it seems that tomcat will no longer read "jndi.properties" from the
WEB-INF/classes directory.  Pending a real fix, you'll need to set the
properties in jndi.properties as System properties in Tomcat, or specify
them in a parameter when you create an InitialContext.

Aaron

On Wed, 18 Oct 2000, Tom Cook wrote:
> I'm getting something Odd happening when trying to use a stateful
> session bean from tomcat.
> 
> On the servlet side it says:
> 
> sjb![LoginServlet][authenticateUser] Caught throwable after authentication try block!
> java.rmi.ServerException: Could not get EJBObject; nested exception is: 
>       javax.naming.NoInitialContextException: Need to specify class name in 
>environment or system property, or as an applet parameter, or in an application 
>resource file:  java.naming.factory.initial
> javax.naming.NoInitialContextException: Need to specify class name in environment or 
>system property, or as an applet parameter, or in an application resource file:  
>java.naming.factory.initial
>       at java.lang.Throwable.<init>(Throwable.java:96)
>       at java.lang.Exception.<init>(Exception.java:44)
>       at javax.naming.NamingException.<init>(NamingException.java:103)
>       at 
>javax.naming.NoInitialContextException.<init>(NoInitialContextException.java:55)
>       at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:647)
>       at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
>       at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
>       at javax.naming.InitialContext.lookup(InitialContext.java:351)
>       at 
>org.jboss.ejb.plugins.jrmp.interfaces.StatefulHandleImpl.getEJBObject(StatefulHandleImpl.java:65)
>       at 
>com.lisasoft.telstra.webfoot.servlet.WebFootClient.getWebFoot(WebFootClient.java:139)
>       at 
>com.lisasoft.telstra.webfoot.servlet.WebFootServlet.getWebFoot(WebFootServlet.java:131)
>       at 
>com.lisasoft.telstra.webfoot.servlet.login.LoginServlet.authenticateUser(LoginServlet.java:161)
>       at 
>com.lisasoft.telstra.webfoot.servlet.login.LoginServlet.doPost(LoginServlet.java:75)
>       at 
>com.lisasoft.telstra.webfoot.servlet.login.LoginServlet.doGet(LoginServlet.java:52)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:387)
>       at org.apache.tomcat.core.Handler.service(Handler.java:263)
>       at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:371)
>       at 
>org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:769)
>       at org.apache.tomcat.core.ContextManager.service(ContextManager.java:715)
>       at 
>org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:207)
>       at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:403)
>       at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
>       at java.lang.Thread.run(Thread.java:498)
> 
> On the serverside it says:
> 
> [Container factory] Deployed application: file:/usr/local/tcook/jboss/deploy/all.jar
> [statefulWebfoot] WebFootBean: setSessionContext: null, 
>com.lisasoft.telstra.webfoot.ejb.webfoot.WebFootBean@3d6a5f
> [statefulWebfoot] WebFootBean: EJB create: null, 
>com.lisasoft.telstra.webfoot.ejb.webfoot.WebFootBean@3d6a5f
> Creating resources... [statefulWebfoot] Factory Class: 
>com.sun.jndi.ldap.LdapCtxFactory
> [statefulWebfoot] URL: ldap://192.168.83.149:389
> [statefulWebfoot] User: 
>uid=admin,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot
> [statefulWebfoot] Password: admin
> [statefulWebfoot] grabResources returning
> [statefulWebfoot] TxCapsule.commit(): Entered, status=STATUS_ACTIVE
> [statefulWebfoot] TxCapsule.commit(): Before completion done, status=STATUS_ACTIVE
> [statefulWebfoot] TxCapsule.commit(): No resources.
> [statefulWebfoot] TxCapsule.commit(): Committed OK.
> [statefulWebfoot] TxCapsule.registerSynchronization(): Entered, status=STATUS_ACTIVE
> [statefulWebfoot] WebFootBean: EJB remove: null, 
>com.lisasoft.telstra.webfoot.ejb.webfoot.WebFootBean@3d6a5f
> [statefulWebfoot] TxCapsule.commit(): Entered, status=STATUS_ACTIVE
> [statefulWebfoot] WebFootBean: beforeCompleteion(): null
> [statefulWebfoot] TxCapsule.commit(): Before completion done, status=STATUS_ACTIVE
> [statefulWebfoot] TxCapsule.commit(): No resources.
> [statefulWebfoot] java.lang.IllegalArgumentException: argument type mismatch
> [statefulWebfoot]     at java.lang.reflect.Method.invoke(Native Method)
> [statefulWebfoot]     at 
>org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor$InstanceSynchronization.afterCompletion(StatefulSessionInstanceInterceptor.java:289)
> [statefulWebfoot]     at 
>org.jboss.tm.TxCapsule.doAfterCompletion(TxCapsule.java:1014)
> [statefulWebfoot]     at org.jboss.tm.TxCapsule.commit(TxCapsule.java:317)
> [statefulWebfoot]     at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:76)
> [statefulWebfoot]     at 
>org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:318)
> [statefulWebfoot]     at 
>org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:99)
> [statefulWebfoot]     at 
>org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:185)
> [statefulWebfoot]     at 
>org.jboss.ejb.StatefulSessionContainer.invoke(StatefulSessionContainer.java:320)
> [statefulWebfoot]     at 
>org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:222)
> [statefulWebfoot]     at 
>org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:187)
> [statefulWebfoot]     at java.lang.reflect.Method.invoke(Native Method)
> [statefulWebfoot]     at 
>sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:241)
> [statefulWebfoot]     at sun.rmi.transport.Transport$1.run(Transport.java:142)
> [statefulWebfoot]     at java.security.AccessController.doPrivileged(Native Method)
> [statefulWebfoot]     at sun.rmi.transport.Transport.serviceCall(Transport.java:139)
> [statefulWebfoot]     at 
>sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:443)
> [statefulWebfoot]     at 
>sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:643)
> [statefulWebfoot]     at java.lang.Thread.run(Thread.java:484)
> [statefulWebfoot] TxCapsule.commit(): Committed OK.
> 
> I think these are two unrelated problems, since the serverside stack
> trace seems to occur while trying to commit a transaction.
> 
> As for the clientside problem, it is odd.  The client already has an
> InitialContext which is has obviously use to contact the server; it
> causes the serverside stack trace.  Even more oddly, the code which
> causes the clientside problem is:
> 
> WebFoot wf = ...;
> javax.ejb.Handle h = wf.getHandle();
> 
> ...
> 
> WebFoot ft = (WebFoot)h.getEJBObject();
> 
> The exception is thrown on this last line.  How does getEJBObject()
> (which returns a serialized connector, I believe) fit in with a proxy
> based system?
> 
> Tom
> 
> 
> --
> --------------------------------------------------------------
> To subscribe:        [EMAIL PROTECTED]
> To unsubscribe:      [EMAIL PROTECTED]
> Problems?:           [EMAIL PROTECTED]
> 



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Problems?:           [EMAIL PROTECTED]

Reply via email to