Java.net.MalformedURLException: no protocol: de

Olá pessoal. Estou tentando implementar um serviço com EJB´s. O problema é que quando a parte cliente (servlets no Tomcat - fora do JBoss ou dentro) aparece este problema:

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.app.util.config.ServiceLocator.getInitialContext(ServiceLocator.java:58)
	at br.com.app.ext.client.action.login.Login.<init>(Login.java:29)
	at br.com.app.ext.client.action.login.LoginAction.validate(LoginAction.java:48)
	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:717)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
	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)
	... 35 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)

Aparentemente parece um problema de resolução de nomes. Porque tanto o Tomcat quanto o JBoss estão em “/Arquivos de programas/…”, daí o “de” mal interpretado em função dos espaços no nome do diretório.

Alguém tem alguma idéia de como resolver isto? Grato T+

estou tendo o mesmo problema!!!
alguem teria uma soluçao para isso???

REVOLVIDO(em partes)
instalei o tomcat no c:\tomcat
realmente o problema é por causa do “arquivos de programas”.
porque será q ele nao considera tudo como uma string só???

Estou com este mesmo problema…
Mas não quero resolver apenas mudando a pasta tomcat para o c:/
O usuario poderá instalar o software em qualquer pasta, inclusive na pasta “Arquivos de programas”
Alguem chegou a alguma solução para este problema?

Tente usar o nome reduzido…

Funciona assim:
“Arquivos de programas” reduza em 8 caracteres, os 6 primeiros sao do nome da pasta e/ou arquivo, os 2 ultimos eh o “~” + “Nº”

c:\Arquiv~1

Esse nº eh de acordo com o nome da pasta
Ex:

NomePastaGrande1 = NomePa~1
NomePastaGrande2 = NomePa~2
NomePastaGrande3 = NomePa~3