2 Replies Latest reply on May 24, 2006 8:39 AM by iktuz

    java.net.MalformedURLException: no protocol: de

    iktuz

      Hi Folks. While I am trying to communicate between my client/servlets and my SessionStateless EJB3 service components, I am getting this stack trace as follow:

      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: no protocol: de]
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:722)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
       at javax.naming.InitialContext.lookup(InitialContext.java:351)
       at br.com.suntech.vigiadados.util.config.ServiceLocator.getInitialContext(ServiceLocator.java:58)
       at br.com.suntech.vigiadados.ext.client.action.login.Login.<init>(Login.java:29)
       at br.com.suntech.vigiadados.ext.client.action.login.LoginAction.validate(LoginAction.java:49)
       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 org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
       at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
       at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
       at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
       at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
       at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
       at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
       at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
       at java.lang.Thread.run(Thread.java:595)
      Caused by: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
       java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
       java.net.MalformedURLException: no protocol: de
       at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:325)
       at sun.rmi.transport.Transport$1.run(Transport.java:153)
       at java.security.AccessController.doPrivileged(Native Method)
       at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
       at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
       at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
       at java.lang.Thread.run(Thread.java:595)
       at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
       at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
       at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
       at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:625)
       ... 41 more
      Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
       java.net.MalformedURLException: no protocol: de
       at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:282)
       at sun.rmi.transport.Transport$1.run(Transport.java:153)
       at java.security.AccessController.doPrivileged(Native Method)
       at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
       at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
       at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
       ... 1 more
      Caused by: java.net.MalformedURLException: no protocol: de
       at java.net.URL.<init>(URL.java:567)
       at java.net.URL.<init>(URL.java:464)
       at java.net.URL.<init>(URL.java:413)
       at sun.rmi.server.LoaderHandler.pathToURLs(LoaderHandler.java:747)
       at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:147)
       at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)
       at org.jboss.system.JBossRMIClassLoader.loadClass(JBossRMIClassLoader.java:91)
       at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
       at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
       at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1538)
       at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1460)
       at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)
       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
       at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
       at javax.naming.CompoundName.readObject(CompoundName.java:554)
       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 java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:919)
       at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1813)
       at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
       at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
       at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:290)
       at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:279)
       ... 6 more
      


      Well, I am using Tomcat to manage my client side separately while JBoss is handling the service side (I am not using the Tomcat into JBoss). Both are in my program files directory:

      C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0\webapps\VigiaDadosClient\
      
      C:\Arquivos de programas\jboss-4.0.4.GA\server\default\deploy\service.ear
      


      I suppose that "de" is the root cause, as mentioned in subject (java.net.MalformedURLException: no protocol: de) I am really lost, and I do not know how can I solve this question, then I am trying rely with your help. Thanks a lot dudes, bye.

        • 1. Re: java.net.MalformedURLException: no protocol: de
          dbudworth

          not sure how to *really* fix it, but at a minimum you can get around this by putting your code in a directory that doesn't contain spaces


          I'd guess, given the stack, that the RMI class loader is having "issues" with a path containing spaces.

          • 2. Re: java.net.MalformedURLException: no protocol: de
            iktuz

            Thanks for your tip. I had have already considered this possibility. But when we make deploys, we do not know how the client environment is and IF we can change it. Then I am obligated to consider that there I will found this same situation and I must turn arround without change installation paths. I can fix it during the development process but probably I will have the same trouble toward with my hands tied. New clues are ever welcome. Thanks again, bye.