[Neo] Import/Export functionality for NEO networks?

Emil Eifrem emil at neopersistence.com
Fri Jun 8 09:33:56 CEST 2007


On 6/8/07, Peter Neubauer <peter.neubauer at jayway.se> wrote:
> Caused by: java.lang.IllegalStateException: Can't start remote neo
> shell: java.rmi.ServerException: RemoteException occurred in server
> thread; nested exception is:
>         java.rmi.UnmarshalException: error unmarshalling arguments;
> nested exception is:
>         java.lang.ClassNotFoundException:
> org.neo4j.util.shell.ShellServer (no security manager: RMI class
> loader disabled)
>         at org.neo4j.api.core.EmbeddedNeo.enableRemoteShell(EmbeddedNeo.java:191)

The reason it complains about the security manager is that it can't
find org.neo4j.util.shell.ShellServer on the class path, and thus
tries to download it via RMI. The default permissions don't allow that
and you haven't changed that, apparently. But fine -- you shouldn't
have to, as long as you add shell-1.0-b5.jar to your classpath.

And you *do* have shell-1.0-b5.jar on your classpath when
EmbeddedNeo.enableRemoteShell is invoked. I know this because the code
that actually starts the shell server is conditioned on the following
code being true:

	private boolean shellDependencyAvailable()
	{
		try
		{
			Class.forName( "org.neo4j.util.shell.ShellServer" );
			return true;
		}
		catch ( Throwable t )
		{
			return false;
		}
	}

So in EmbeddedNeo.makeRemotelyAvailable(), it can definitely find
ShellServer, but when it actually tries to start the Neo shell server
then it suddenly can't. This seems to be OSGi class loading messing
with us.

So, can you first make sure that it works by starting it outside of
your OSGi container? Let's make sure that it's OSGi before we dig
deeper into that.

Cheers,

-- 
Emil Eifrém, CEO [emil at neopersistence.com]
Neo Persistence AB, www.neopersistence.com
Cell: +46 733 462 271 | US Cell: 206 403 8808


More information about the User mailing list