On Jan 5, 2007, at 9:04 AM, Carragher Jr, Richard wrote:

David, Thanks for the response.  I'll try to debug it - I'm assuming
there's no log statements, and you would like me to run it in a
debugger?

Either that or add some logging statements and recompile. I suspect the debugger might be simpler.

Another thought that I had, is it possible to look at the JNDI tree, to
verify that my ejb is deployed properly?

I don't know of any tools that would let you look.
  And also, I don't have a
geronimo-application.xml deployed with my ear. Could that have anything
to do with it?  (I couldn't find any examples that met what we do in
this app).

I can't think of a way this could cause the problem you are seeing, but my imagination might be limited.

thanks
david jencks


Thanks,
Rick
On Jan 4, 2007, at 8:03 PM, Carragher Jr, Richard wrote:

Hi,

I'm trying to deploy a non-j2ee application client connecting to a
stateless session bean in Geronimo 1.1.  This seems simple, and it
has worked without changes on WebSphere, Jboss, and WebLogic, so
I'm pretty sure that I m setting something up in Geronimo incorrectly.


In open-ejb-jar.xml, I have the following snippet:

 <session>
         <ejb-name>Controller</ejb-name>
         <jndi-name>awc</jndi-name>
         <local-jndi-name>ControllerLocal</local-jndi-name>
                 <gernaming:resource-ref>
                    <gernaming:ref-name>jdbc/datasourceUri</
gernaming:ref-name>
            <gernaming:resource-link>jdbc/
transactionwareDataSource</gernaming:resource-link>
                 </gernaming:resource-ref>
      </session>

My client has the following properties setup:
java.naming.factory.initial=org.openejb.client.RemoteInitialContextFa c

tory
java.naming.provider.url=localhost:4201
java.naming.security.principal=system
java.naming.security.credentials=manager
And the client lookup code is pretty straightforward:
InitialContext jndiContext = new InitialContext(env);
Object ref = jndiContext.lookup("awc");
ControllerRemoteHome home = (ControllerRemoteHome)
PortableRemoteObject.narrow(ref, ControllerRemoteHome.class);
Here's the exception I get in geronimo.out:
19:46:54,233 ERROR [JndiRequestHandler] JNDI request error
java.lang.IllegalArgumentException
        at java.net.URI.create(URI.java:859)
        at org.openejb.ContainerIndex.getContainerIndex
(ContainerIndex.java:207)
        at org.openejb.ContainerIndex$$FastClassByCGLIB$
$6674ccb6.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java
(Inlined Compiled Code))
        at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
(FastMethodInvoker.java(Compiled Code))
        at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperation.java(Inlined Compiled Code))
        at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.java(Compiled Code))
        at org.apache.geronimo.gbean.runtime.RawInvoker.invoke
(RawInvoker.java(Inlined Compiled Code))
        at
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke
(RawOperationInvoker.java(Compiled Code))
        at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept
(ProxyMethodInterceptor.java(Compiled Code))

        at org.openejb.ContainerIndex$$EnhancerByCGLIB$
$2edf4a7f.getContainerIndex(<generated>)
        at org.openejb.server.ejbd.JndiRequestHandler.doLookup
(JndiRequestHandler.java:178)
        at org.openejb.server.ejbd.JndiRequestHandler.processRequest
(JndiRequestHandler.java:115)
        at org.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:
154)
        at org.openejb.server.ejbd.EjbServer.service(EjbServer.java:
87)
        at org.openejb.server.ejbd.EjbServer$$FastClassByCGLIB$
$d379d2ff.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java
(Inlined Compiled Code))
        at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
(FastMethodInvoker.java(Compiled Code))
        at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperation.java(Inlined Compiled Code))
        at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.java(Compiled Code))
        at org.apache.geronimo.gbean.runtime.RawInvoker.invoke
(RawInvoker.java(Inlined Compiled Code))
        at
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke
(RawOperationInvoker.java(Compiled Code))
        at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept
(ProxyMethodInterceptor.java(Compiled Code))

        at org.activeio.xnet.ServerService$$EnhancerByCGLIB$
$eb95fe48.service(<generated>)
        at org.activeio.xnet.ServicePool$2.run(ServicePool.java:67)
        at org.activeio.xnet.ServicePool$3.run(ServicePool.java:90)
        at org.apache.geronimo.pool.ThreadPool$1.run
(ThreadPool.java:172)
        at org.apache.geronimo.pool.ThreadPool
$ContextClassLoaderRunnable.run(ThreadPool.java:289)
        at EDU.oswego.cs.dl.util.concurrent.PooledExecutor
$Worker.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:568)
Caused by: java.net.URISyntaxException: Illegal character in path
at index 1: /"awc"
        at java.net.URI$Parser.fail(URI.java:2764)
        at java.net.URI$Parser.checkChars(URI.java(Inlined Compiled
Code))
        at java.net.URI$Parser.parseHierarchical(URI.java(Compiled
Code))
        at java.net.URI$Parser.parse(URI.java(Compiled Code))
        at java.net.URI.<init>(URI.java:595)
        at java.net.URI.create(URI.java:857)
        ... 29 more
I've tried all variations of the jndi name in my client, but none
seem to work.  Any thoughts or ideas?

I dont see anything wrong with your setup.  The lookup should have
succeeded in line 175 of JndiRequestHandler.  Is there any chance you
could debug the call to ContainerIndex.getContainerIndexByJndiName
and see what is in jndiNameToIndex and what the jndi name parameter is ?

Wish I could help better
david jencks

Thanks,
Rick Carragher


Reply via email to