You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Warren Crossing <Wa...@nocode.com.au> on 2001/06/05 03:01:56 UTC

RE: java.net.MalformedURLException: unknown protocol: jndi

hey, thanks for responding directly to me.. i will post this to the jakarta
& jboss lists
so anyone else recieve this error knows about as much as we do =)

1. i picked up this problem again when i upgraded to 4.0b5. from 4.0b1
2. i recieve this error regardless of whether i start tomcat with -nonaming
3. the ejb is declared stateless in the descriptor.
4. the ejb is declared in a resource element in the war descriptor
5. the lookup is performed by simple name each time ie "Manager" not
"comp://javax.env/Manager" nor "jndi://Manager".
6. i believe this to be a jboss jndi problem as the
StreamRemoteCall.exceptionRecievedFromServer states
7. my calls from servlet to this ejb actually work ( i see my ejb debug
notes in jboss log )   
8. my servlet invokes a class that looks up & calls the ejb
9. the lookup succeeds however the method invocation fails ( with the below
exception ) 

i did read something about java naming security improvements and changes in
jdk1.3
anyway i've changed catalina.policy to grant all permissions same with
jboss.policy ( default ) 
also removed lkeading comment from servername in jndi.properties

stateless ejb remote proxies ( ie client side interfaces ) are serializable
and interchangeable, so its not a proxy mixup/classloader/security thing?
right? 
we're not using jarkarta/common/lib/jndi.jar as naming provider.. we're
using jnp-client.jar

check the signature on your ejbs..

still no luck.. 

can i clarify your jndi issue..
are you invoking all test ejb methods from the same
servlet/class/method/scope??

regards,

warren.

-----Original Message-----
From: Christopher G. Stach II [mailto:cgs@ldsys.net]
Sent: Sunday, 3 June 2001 4:24 PM
To: WarrenC@nocode.com.au
Subject: java.net.MalformedURLException: unknown protocol: jndi


    Hey there, I'm using JBoss 2.2.2 and Tomcat 4.0b5 (separate) and I'm
having this problem also.  I have other EJBs that work just fine, but this
one doesn't.  Actually, it's just a single method in this EJB that doesn't
work.  I didn't find any followups to this thread.  Have you figured this
out?

    My stack trace, to compare:

java.lang.reflect.UndeclaredThrowableException:
java.net.MalformedURLException: unknown protocol: jndi
        at
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteC
all.java:245)
        at
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
        at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker_Stub.invoke(Unknown
Source)
        at
org.jboss.ejb.plugins.jrmp.interfaces.StatefulSessionProxy.invoke(StatefulSe
ssionProxy.java:186)
        at $Proxy1.handleEvent(Unknown Source)
        at
com.cig.controller.web.WebControllerWebImpl.handleEvent(WebControllerWebImpl
.java:113)
        at com.cig.controller.web.Main.doRequestHandler(Main.java:322)
        at com.cig.controller.web.Main.processRequest(Main.java:188)
        at com.cig.controller.web.Main.doPost(Main.java:93)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:254)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:194)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:255)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:225)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2
46)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2252)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:163)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
875)
        at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:952)
        at java.lang.Thread.run(Thread.java:484)

chris

To: "'tomcat-user@xxxxxxxxxxxxxxxxxx'" <to...@xxxxxxxxxxxxxxxxxx>
Subject: java.net.MalformedURLException: unknown protocol: jndi
From: Warren Crossing <Wa...@xxxxxxxxxxxxx>
Date: Tue, 3 Apr 2001 14:59:23 +1000
Delivered-To: mailing list tomcat-user@jakarta.apache.org
list-help: <ma...@jakarta.apache.org>
list-post: <ma...@jakarta.apache.org>
list-unsubscribe: <ma...@jakarta.apache.org>
Mailing-List: contact tomcat-user-help@jakarta.apache.org; run by ezmlm
Reply-To: tomcat-user@xxxxxxxxxxxxxxxxxx



tomcat 4.0 beta2

overview/symptom

A servlet instance invokes a method on an enterprise bean.. the bean is a
CLASS/STATIC field of the servlet  - execution occurs normally
however when this servlet calls a class that invokes the same field
reference of the servlet class everything fails.

detail

1 AbstractPortal.service ( servlet ) does naming lookup for ejb and invokes
Manager.load method [ OK ]
2 delegates processing to WorkFlow.processEvent
3 WorkFlow invokes store method on AbstractPortal.Manager ejb reference
[FAILED]
4 control returns to AbstractPortal
5 AbstractPortal.service ( servlet ) invokes Manager.store method [ OK ]

both calls can c class access to org.jboss.ejb.plugins.jrmp.server in
www/WEB-INF/lib
step 3 cannot c ${CATALINA_HOME}/common/lib/jndi.jar and causes stack trace
1

boundary condition

if i take ${CATALINA_HOME}/common/lib/jndi.jar and place it in
www/WEB-INF/lib i receive stacktrace 2 @ point 1
i know the sequence works in tomcat 4.0 beta1
launching catalina with -nonaming has no effect

assumption

org.apache.naming is not used in any calls..
the classloader that loaded AbstractPortal also loaded WorkFlow
the classloader that loaded WorkFlow is used to access
AbstractPortal.Manager

question

what is different about these calls..
1 form 3 from 5 ?? except 1 & 5 occur from the class with the STATIC
reference and is a servlet.. or something..
could it be a subtle classloader/classpath issue??

i will move the code around and try to reproduce it in a simple context..

stacktrace 1

java.lang.reflect.UndeclaredThrowableException:
java.net.MalformedURLException: unknown protocol: jndi
        at
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteC
all.java:245)
        at
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
        at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker_Stub.invoke(Unknown
Source)
        at
org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke(Stateless
SessionProxy.java:188)
        at $Proxy1.store(Unknown Source)
        at
nu.tradeforce.portal.content.WorkFlow.processEvent(WorkFlow.java:74)
        at
nu.tradeforce.portal.control.AbstractPortal.dispatch(AbstractPortal.java:110
)
        at
nu.tradeforce.portal.control.AbstractPortal.service(AbstractPortal.java:174)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

stack trace 2

javax.naming.CommunicationException.  Root exception is
java.rmi.ServerException: RemoteException occurred in server thread; nested
exception is:
        java.rmi.UnmarshalException: error unmarshalling arguments; nested
exception is:
        java.net.MalformedURLException: unknown protocol: jndi
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception
is:
        java.net.MalformedURLException: unknown protocol: jndi
java.net.MalformedURLException: unknown protocol: jndi
        at
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteC
all.java:245)
        at
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
        at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:295)
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:279)
        at javax.naming.InitialContext.lookup(InitialContext.java:354)
        at
nu.tradeforce.portal.control.AbstractPortal.lookupManager(AbstractPortal.jav
a:73)
        at
nu.tradeforce.portal.control.AbstractPortal.init(AbstractPortal.java:36)


its completly bugged my out!! any ideas?
-wozza

RE: java.net.MalformedURLException: unknown protocol: jndi

Posted by John Menke <jo...@murphyfutures.com>.
I was getting the same error using b3.  I'm not sure about b5 but you can
try this:

http://jakarta.apache.org/turbine/howto/jboss-howto.html



> -----Original Message-----
> From: Remy Maucherat [mailto:rmaucher1@home.com]
> Sent: Tuesday, June 05, 2001 12:01 AM
> To: tomcat-user@jakarta.apache.org
> Subject: Re: java.net.MalformedURLException: unknown protocol: jndi
>
>
> > hey, thanks for responding directly to me.. i will post this to the
> jakarta
> > & jboss lists
> > so anyone else recieve this error knows about as much as we do =)
> >
> > 1. i picked up this problem again when i upgraded to 4.0b5. from 4.0b1
> > 2. i recieve this error regardless of whether i start tomcat
> with -nonaming
> > 3. the ejb is declared stateless in the descriptor.
> > 4. the ejb is declared in a resource element in the war descriptor
> > 5. the lookup is performed by simple name each time ie "Manager" not
> > "comp://javax.env/Manager" nor "jndi://Manager".
> > 6. i believe this to be a jboss jndi problem as the
> > StreamRemoteCall.exceptionRecievedFromServer states
> > 7. my calls from servlet to this ejb actually work ( i see my ejb debug
> > notes in jboss log )
> > 8. my servlet invokes a class that looks up & calls the ejb
> > 9. the lookup succeeds however the method invocation fails ( with the
> below
> > exception )
>
> Is jBoss running in the same VM ?
> I really don't understand what happens here ...
>
> > i did read something about java naming security improvements and changes
> in
> > jdk1.3
> > anyway i've changed catalina.policy to grant all permissions same with
> > jboss.policy ( default )
> > also removed lkeading comment from servername in jndi.properties
> >
> > stateless ejb remote proxies ( ie client side interfaces ) are
> serializable
> > and interchangeable, so its not a proxy
> mixup/classloader/security thing?
> > right?
> > we're not using jarkarta/common/lib/jndi.jar as naming provider.. we're
> > using jnp-client.jar
>
> It's not a problem which is related to the JNDI ENC at all.
>
> The protocol is named "jndi" because the resources come from a JNDI
> directory context implementation.
>
> Remy
>
> >
> > From: Christopher G. Stach II [mailto:cgs@ldsys.net]
> > Sent: Sunday, 3 June 2001 4:24 PM
> > To: WarrenC@nocode.com.au
> > Subject: java.net.MalformedURLException: unknown protocol: jndi
> >
> >
> >     Hey there, I'm using JBoss 2.2.2 and Tomcat 4.0b5 (separate) and I'm
> > having this problem also.  I have other EJBs that work just
> fine, but this
> > one doesn't.  Actually, it's just a single method in this EJB
> that doesn't
> > work.  I didn't find any followups to this thread.  Have you
> figured this
> > out?
> >
> >     My stack trace, to compare:
> >
> > java.lang.reflect.UndeclaredThrowableException:
> > java.net.MalformedURLException: unknown protocol: jndi
> >         at
> >
> sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Str
> eamRemoteC
> > all.java:245)
> >         at
> >
> sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
> >         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
> >         at
> >
> org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker_Stub.invoke(Unknown
> > Source)
> >         at
> >
> org.jboss.ejb.plugins.jrmp.interfaces.StatefulSessionProxy.invoke(
> StatefulSe
> > ssionProxy.java:186)
> >         at $Proxy1.handleEvent(Unknown Source)
> >         at
> >
> com.cig.controller.web.WebControllerWebImpl.handleEvent(WebControl
> lerWebImpl
> > .java:113)
> >         at com.cig.controller.web.Main.doRequestHandler(Main.java:322)
> >         at com.cig.controller.web.Main.processRequest(Main.java:188)
> >         at com.cig.controller.web.Main.doPost(Main.java:93)
> >         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
> >         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> >         at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(A
> pplication
> > FilterChain.java:254)
> >         at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Applicati
> onFilterCh
> > ain.java:194)
> >         at
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapp
> erValve.ja
> > va:255)
> >         at
> >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:5
> > 66)
> >         at
> >
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.
> java:472)
> >         at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >         at
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardConte
> xtValve.ja
> > va:225)
> >         at
> >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:5
> > 66)
> >         at
> >
> org.apache.catalina.valves.CertificatesValve.invoke(CertificatesVa
> lve.java:2
> > 46)
> >         at
> >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:5
> > 64)
> >         at
> >
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.
> java:472)
> >         at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >         at
> >
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2252)
> >         at
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValv
> e.java:164
> > )
> >         at
> >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:5
> > 66)
> >         at
> >
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
> >         at
> >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:5
> > 64)
> >         at
> >
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.
> java:472)
> >         at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >         at
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngine
> Valve.java
> > :163)
> >         at
> >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipel
> ine.java:5
> > 66)
> >         at
> >
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.
> java:472)
> >         at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >         at
> >
> org.apache.catalina.connector.http.HttpProcessor.process(HttpProce
> ssor.java:
> > 875)
> >         at
> >
> org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor
> .java:952)
> >         at java.lang.Thread.run(Thread.java:484)
> >
> > chris
> >
> > To: "'tomcat-user@xxxxxxxxxxxxxxxxxx'" <to...@xxxxxxxxxxxxxxxxxx>
> > Subject: java.net.MalformedURLException: unknown protocol: jndi
> > From: Warren Crossing <Wa...@xxxxxxxxxxxxx>
> > Date: Tue, 3 Apr 2001 14:59:23 +1000
> > Delivered-To: mailing list tomcat-user@jakarta.apache.org
> > list-help: <ma...@jakarta.apache.org>
> > list-post: <ma...@jakarta.apache.org>
> > list-unsubscribe: <ma...@jakarta.apache.org>
> > Mailing-List: contact tomcat-user-help@jakarta.apache.org; run by ezmlm
> > Reply-To: tomcat-user@xxxxxxxxxxxxxxxxxx
> >
> >
> >
> > tomcat 4.0 beta2
> >
> > overview/symptom
> >
> > A servlet instance invokes a method on an enterprise bean.. the
> bean is a
> > CLASS/STATIC field of the servlet  - execution occurs normally
> > however when this servlet calls a class that invokes the same field
> > reference of the servlet class everything fails.
> >
> > detail
> >
> > 1 AbstractPortal.service ( servlet ) does naming lookup for ejb and
> invokes
> > Manager.load method [ OK ]
> > 2 delegates processing to WorkFlow.processEvent
> > 3 WorkFlow invokes store method on AbstractPortal.Manager ejb reference
> > [FAILED]
> > 4 control returns to AbstractPortal
> > 5 AbstractPortal.service ( servlet ) invokes Manager.store method [ OK ]
> >
> > both calls can c class access to org.jboss.ejb.plugins.jrmp.server in
> > www/WEB-INF/lib
> > step 3 cannot c ${CATALINA_HOME}/common/lib/jndi.jar and causes stack
> trace
> > 1
> >
> > boundary condition
> >
> > if i take ${CATALINA_HOME}/common/lib/jndi.jar and place it in
> > www/WEB-INF/lib i receive stacktrace 2 @ point 1
> > i know the sequence works in tomcat 4.0 beta1
> > launching catalina with -nonaming has no effect
> >
> > assumption
> >
> > org.apache.naming is not used in any calls..
> > the classloader that loaded AbstractPortal also loaded WorkFlow
> > the classloader that loaded WorkFlow is used to access
> > AbstractPortal.Manager
> >
> > question
> >
> > what is different about these calls..
> > 1 form 3 from 5 ?? except 1 & 5 occur from the class with the STATIC
> > reference and is a servlet.. or something..
> > could it be a subtle classloader/classpath issue??
> >
> > i will move the code around and try to reproduce it in a simple
> context..
> >
> > stacktrace 1
> >
> > java.lang.reflect.UndeclaredThrowableException:
> > java.net.MalformedURLException: unknown protocol: jndi
> >         at
> >
> sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Str
> eamRemoteC
> > all.java:245)
> >         at
> >
> sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
> >         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
> >         at
> >
> org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker_Stub.invoke(Unknown
> > Source)
> >         at
> >
> org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke
> (Stateless
> > SessionProxy.java:188)
> >         at $Proxy1.store(Unknown Source)
> >         at
> > nu.tradeforce.portal.content.WorkFlow.processEvent(WorkFlow.java:74)
> >         at
> >
> nu.tradeforce.portal.control.AbstractPortal.dispatch(AbstractPorta
> l.java:110
> > )
> >         at
> >
> nu.tradeforce.portal.control.AbstractPortal.service(AbstractPortal
> .java:174)
> >         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> >
> > stack trace 2
> >
> > javax.naming.CommunicationException.  Root exception is
> > java.rmi.ServerException: RemoteException occurred in server thread;
> nested
> > exception is:
> >         java.rmi.UnmarshalException: error unmarshalling
> arguments; nested
> > exception is:
> >         java.net.MalformedURLException: unknown protocol: jndi
> > java.rmi.UnmarshalException: error unmarshalling arguments; nested
> exception
> > is:
> >         java.net.MalformedURLException: unknown protocol: jndi
> > java.net.MalformedURLException: unknown protocol: jndi
> >         at
> >
> sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Str
> eamRemoteC
> > all.java:245)
> >         at
> >
> sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
> >         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
> >         at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
> >         at
> org.jnp.interfaces.NamingContext.lookup(NamingContext.java:295)
> >         at
> org.jnp.interfaces.NamingContext.lookup(NamingContext.java:279)
> >         at javax.naming.InitialContext.lookup(InitialContext.java:354)
> >         at
> >
> nu.tradeforce.portal.control.AbstractPortal.lookupManager(Abstract
> Portal.jav
> > a:73)
> >         at
> > nu.tradeforce.portal.control.AbstractPortal.init(AbstractPortal.java:36)
> >
> >
> > its completly bugged my out!! any ideas?
> > -wozza


Re: java.net.MalformedURLException: unknown protocol: jndi

Posted by Remy Maucherat <rm...@home.com>.
> hey, thanks for responding directly to me.. i will post this to the
jakarta
> & jboss lists
> so anyone else recieve this error knows about as much as we do =)
>
> 1. i picked up this problem again when i upgraded to 4.0b5. from 4.0b1
> 2. i recieve this error regardless of whether i start tomcat
with -nonaming
> 3. the ejb is declared stateless in the descriptor.
> 4. the ejb is declared in a resource element in the war descriptor
> 5. the lookup is performed by simple name each time ie "Manager" not
> "comp://javax.env/Manager" nor "jndi://Manager".
> 6. i believe this to be a jboss jndi problem as the
> StreamRemoteCall.exceptionRecievedFromServer states
> 7. my calls from servlet to this ejb actually work ( i see my ejb debug
> notes in jboss log )
> 8. my servlet invokes a class that looks up & calls the ejb
> 9. the lookup succeeds however the method invocation fails ( with the
below
> exception )

Is jBoss running in the same VM ?
I really don't understand what happens here ...

> i did read something about java naming security improvements and changes
in
> jdk1.3
> anyway i've changed catalina.policy to grant all permissions same with
> jboss.policy ( default )
> also removed lkeading comment from servername in jndi.properties
>
> stateless ejb remote proxies ( ie client side interfaces ) are
serializable
> and interchangeable, so its not a proxy mixup/classloader/security thing?
> right?
> we're not using jarkarta/common/lib/jndi.jar as naming provider.. we're
> using jnp-client.jar

It's not a problem which is related to the JNDI ENC at all.

The protocol is named "jndi" because the resources come from a JNDI
directory context implementation.

Remy

>
> From: Christopher G. Stach II [mailto:cgs@ldsys.net]
> Sent: Sunday, 3 June 2001 4:24 PM
> To: WarrenC@nocode.com.au
> Subject: java.net.MalformedURLException: unknown protocol: jndi
>
>
>     Hey there, I'm using JBoss 2.2.2 and Tomcat 4.0b5 (separate) and I'm
> having this problem also.  I have other EJBs that work just fine, but this
> one doesn't.  Actually, it's just a single method in this EJB that doesn't
> work.  I didn't find any followups to this thread.  Have you figured this
> out?
>
>     My stack trace, to compare:
>
> java.lang.reflect.UndeclaredThrowableException:
> java.net.MalformedURLException: unknown protocol: jndi
>         at
>
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteC
> all.java:245)
>         at
> sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
>         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
>         at
> org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker_Stub.invoke(Unknown
> Source)
>         at
>
org.jboss.ejb.plugins.jrmp.interfaces.StatefulSessionProxy.invoke(StatefulSe
> ssionProxy.java:186)
>         at $Proxy1.handleEvent(Unknown Source)
>         at
>
com.cig.controller.web.WebControllerWebImpl.handleEvent(WebControllerWebImpl
> .java:113)
>         at com.cig.controller.web.Main.doRequestHandler(Main.java:322)
>         at com.cig.controller.web.Main.processRequest(Main.java:188)
>         at com.cig.controller.web.Main.doPost(Main.java:93)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>         at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:254)
>         at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:194)
>         at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
> va:255)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>         at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>         at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>         at
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
> va:225)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>         at
>
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2
> 46)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 64)
>         at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>         at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>         at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2252)
>         at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
> )
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>         at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 64)
>         at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>         at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>         at
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
> :163)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>         at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>         at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>         at
>
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
> 875)
>         at
>
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:952)
>         at java.lang.Thread.run(Thread.java:484)
>
> chris
>
> To: "'tomcat-user@xxxxxxxxxxxxxxxxxx'" <to...@xxxxxxxxxxxxxxxxxx>
> Subject: java.net.MalformedURLException: unknown protocol: jndi
> From: Warren Crossing <Wa...@xxxxxxxxxxxxx>
> Date: Tue, 3 Apr 2001 14:59:23 +1000
> Delivered-To: mailing list tomcat-user@jakarta.apache.org
> list-help: <ma...@jakarta.apache.org>
> list-post: <ma...@jakarta.apache.org>
> list-unsubscribe: <ma...@jakarta.apache.org>
> Mailing-List: contact tomcat-user-help@jakarta.apache.org; run by ezmlm
> Reply-To: tomcat-user@xxxxxxxxxxxxxxxxxx
>
>
>
> tomcat 4.0 beta2
>
> overview/symptom
>
> A servlet instance invokes a method on an enterprise bean.. the bean is a
> CLASS/STATIC field of the servlet  - execution occurs normally
> however when this servlet calls a class that invokes the same field
> reference of the servlet class everything fails.
>
> detail
>
> 1 AbstractPortal.service ( servlet ) does naming lookup for ejb and
invokes
> Manager.load method [ OK ]
> 2 delegates processing to WorkFlow.processEvent
> 3 WorkFlow invokes store method on AbstractPortal.Manager ejb reference
> [FAILED]
> 4 control returns to AbstractPortal
> 5 AbstractPortal.service ( servlet ) invokes Manager.store method [ OK ]
>
> both calls can c class access to org.jboss.ejb.plugins.jrmp.server in
> www/WEB-INF/lib
> step 3 cannot c ${CATALINA_HOME}/common/lib/jndi.jar and causes stack
trace
> 1
>
> boundary condition
>
> if i take ${CATALINA_HOME}/common/lib/jndi.jar and place it in
> www/WEB-INF/lib i receive stacktrace 2 @ point 1
> i know the sequence works in tomcat 4.0 beta1
> launching catalina with -nonaming has no effect
>
> assumption
>
> org.apache.naming is not used in any calls..
> the classloader that loaded AbstractPortal also loaded WorkFlow
> the classloader that loaded WorkFlow is used to access
> AbstractPortal.Manager
>
> question
>
> what is different about these calls..
> 1 form 3 from 5 ?? except 1 & 5 occur from the class with the STATIC
> reference and is a servlet.. or something..
> could it be a subtle classloader/classpath issue??
>
> i will move the code around and try to reproduce it in a simple context..
>
> stacktrace 1
>
> java.lang.reflect.UndeclaredThrowableException:
> java.net.MalformedURLException: unknown protocol: jndi
>         at
>
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteC
> all.java:245)
>         at
> sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
>         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
>         at
> org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker_Stub.invoke(Unknown
> Source)
>         at
>
org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke(Stateless
> SessionProxy.java:188)
>         at $Proxy1.store(Unknown Source)
>         at
> nu.tradeforce.portal.content.WorkFlow.processEvent(WorkFlow.java:74)
>         at
>
nu.tradeforce.portal.control.AbstractPortal.dispatch(AbstractPortal.java:110
> )
>         at
>
nu.tradeforce.portal.control.AbstractPortal.service(AbstractPortal.java:174)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>
> stack trace 2
>
> javax.naming.CommunicationException.  Root exception is
> java.rmi.ServerException: RemoteException occurred in server thread;
nested
> exception is:
>         java.rmi.UnmarshalException: error unmarshalling arguments; nested
> exception is:
>         java.net.MalformedURLException: unknown protocol: jndi
> java.rmi.UnmarshalException: error unmarshalling arguments; nested
exception
> is:
>         java.net.MalformedURLException: unknown protocol: jndi
> java.net.MalformedURLException: unknown protocol: jndi
>         at
>
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteC
> all.java:245)
>         at
> sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
>         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
>         at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
>         at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:295)
>         at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:279)
>         at javax.naming.InitialContext.lookup(InitialContext.java:354)
>         at
>
nu.tradeforce.portal.control.AbstractPortal.lookupManager(AbstractPortal.jav
> a:73)
>         at
> nu.tradeforce.portal.control.AbstractPortal.init(AbstractPortal.java:36)
>
>
> its completly bugged my out!! any ideas?
> -wozza