jcr-rmi problems

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

jcr-rmi problems

qcfireball
Tomcat server log shows that the RMI Objects are created in the RMI registry.

I can retrieve an instance of the Repository factory OK via:

ClientRepositoryFactory factory = new ClientRepositoryFactory();
final Object o = factory.getRepository(s);

but when I try to "login" to the "default" workspace, I get the following RMI error:


org.apache.jackrabbit.rmi.client.RemoteRepositoryException: error unmarshalling return; nested exception is:
        java.net.MalformedURLException: no protocol: and: error unmarshalling return; nested exception is:
        java.net.MalformedURLException: no protocol: and
        at org.apache.jackrabbit.rmi.client.SafeClientRepository.remoteLogin(SafeClientRepository.java:112)
        at org.apache.jackrabbit.rmi.client.SafeClientRepository.login(SafeClientRepository.java:120)
        at testjackrabbit.Main.showRepository(Main.java:76)
        at testjackrabbit.Main.main(Main.java:55)
Caused by: java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
        java.net.MalformedURLException: no protocol: and
        at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
        at java.rmi.Naming.lookup(Naming.java:84)
        at org.apache.jackrabbit.rmi.client.ClientRepositoryFactory$1.getRemoteRepository(ClientRepositoryFactory.java:95)
        at org.apache.jackrabbit.rmi.client.SafeClientRepository.remoteLogin(SafeClientRepository.java:108)
        ... 3 more
Caused by: java.net.MalformedURLException: no protocol: and
        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 java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
        at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
        ... 7 more
java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
        java.net.MalformedURLException: no protocol: and
        at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
        at java.rmi.Naming.lookup(Naming.java:84)
        at org.apache.jackrabbit.rmi.client.ClientRepositoryFactory$1.getRemoteRepository(ClientRepositoryFactory.java:95)
        at org.apache.jackrabbit.rmi.client.SafeClientRepository.remoteLogin(SafeClientRepository.java:108)
        at org.apache.jackrabbit.rmi.client.SafeClientRepository.login(SafeClientRepository.java:120)
        at testjackrabbit.Main.showRepository(Main.java:76)
        at testjackrabbit.Main.main(Main.java:55)
Caused by: java.net.MalformedURLException: no protocol: and
        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 java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
        at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
        ... 7 more
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: jcr-rmi problems

Christoph Kiehl
qcfireball wrote:

> Tomcat server log shows that the RMI Objects are created in the RMI registry.
>
> I can retrieve an instance of the Repository factory OK via:
>
> ClientRepositoryFactory factory = new ClientRepositoryFactory();
> final Object o = factory.getRepository(s);
>
> but when I try to "login" to the "default" workspace, I get the following
> RMI error:
>
>
> org.apache.jackrabbit.rmi.client.RemoteRepositoryException: error
> unmarshalling return; nested exception is:
>         java.net.MalformedURLException: no protocol: and: error
> unmarshalling return; nested exception is:
>         java.net.MalformedURLException: no protocol: and

This is a common error when using RMI. It took me some time to find out
what's happening there when it occurred to me the first time. The "and"
comes from the folder where your classes are which is probably something
beneath "C:\Documents and Settings". Moving your application to a folder
without spaces or setting the system property
"java.rmi.server.useCodebaseOnly" to true should solve the problem.

Cheers,
Christoph

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: jcr-rmi problems

qcfireball
I just had a BIG   "A H A A A"  - I forgot about that.  I had a similar problem with Unix classpaths.  Thank you VERY much for your help.


Christoph Kiehl wrote
qcfireball wrote:

> Tomcat server log shows that the RMI Objects are created in the RMI registry.
>
> I can retrieve an instance of the Repository factory OK via:
>
> ClientRepositoryFactory factory = new ClientRepositoryFactory();
> final Object o = factory.getRepository(s);
>
> but when I try to "login" to the "default" workspace, I get the following
> RMI error:
>
>
> org.apache.jackrabbit.rmi.client.RemoteRepositoryException: error
> unmarshalling return; nested exception is:
>         java.net.MalformedURLException: no protocol: and: error
> unmarshalling return; nested exception is:
>         java.net.MalformedURLException: no protocol: and

This is a common error when using RMI. It took me some time to find out
what's happening there when it occurred to me the first time. The "and"
comes from the folder where your classes are which is probably something
beneath "C:\Documents and Settings". Moving your application to a folder
without spaces or setting the system property
"java.rmi.server.useCodebaseOnly" to true should solve the problem.

Cheers,
Christoph
Loading...