RMI Error Under Eclipse, Not Command Line

D

Dale

I should probably think more about this before posting, but I need to
leave this task now.... maybe someone has hit this one before and
can assist?

I've got an RMI client class that works perfectly well from the
command line:

cd workspace\rmiproj
set classpath=.
java rmiproggy.java

(at this point the application comes up, and calls another machine
using that SQLOrdersImpl_Stub object).

But when I run this same thing from within Eclipse, I get this:

java.rmi.UnmarshalException: error unmarshalling return; nested
exception is:
java.lang.ClassNotFoundException: SQLOrdersImpl_Stub (no security
manager: RMI class loader disabled)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Unknown Source)
at OrderThread.run(OrderThread.java:32)
Caused by: java.lang.ClassNotFoundException: SQLOrdersImpl_Stub (no
security manager: RMI class loader disabled)
at sun.rmi.server.LoaderHandler.loadClass(Unknown Source)
at sun.rmi.server.LoaderHandler.loadClass(Unknown Source)
at java.rmi.server.RMIClassLoader$2.loadClass(Unknown Source)
at java.rmi.server.RMIClassLoader.loadClass(Unknown Source)
at sun.rmi.server.MarshalInputStream.resolveClass(Unknown Source)
at java.io_ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io_ObjectInputStream.readClassDesc(Unknown Source)
at java.io_ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io_ObjectInputStream.readObject0(Unknown Source)
at java.io_ObjectInputStream.readObject(Unknown Source)
... 3 more

It's failing on the following line:
orders = (SQLOrders) Naming.lookup(serviceName);

Again, same exact code running from the command line works perfectly.
WTH??

--Dale--
 
I

iksrazal

I should probably think more about this before posting, but I need to
leave this task now.... maybe someone has hit this one before and
can assist?

I've got an RMI client class that works perfectly well from the
command line:

cd workspace\rmiproj
set classpath=.
java rmiproggy.java

(at this point the application comes up, and calls another machine
using that SQLOrdersImpl_Stub object).

But when I run this same thing from within Eclipse, I get this:

java.rmi.UnmarshalException: error unmarshalling return; nested
exception is:

A fail-proof solution that will work everywhere - command line, linux,
ms and the gui's like eclipse - is to use ant:

To build:

<target name="rmi_compile" depends="prepare-src">
<echo message="Compiling dhl"/>

<javac
srcdir="${build.src.java}"
destdir="${build.dest.classes}"
deprecation="true"
failonerror="true" debug="true"
<include name="dhl/**/*.java"/>
<classpath refid="build.classpath" />
</javac>

<rmic classname="com.pegasus.user.AccessControlServer"
base="${build.dest.classes}"/>

</target>

to run:

<target name="run_rmi"
description="Launch the Login Client">
<java classname="com.pegasus.user.ui.LoginFrame" fork="yes" >
<classpath refid="run.classpath" />
<sysproperty key="pegasus.configdir"
value="${pegasus.dir}" />
<sysproperty key="java.rmi.server.hostname"
value="10.10.10.10:1099" />
<sysproperty key="java.security.policy"
value="policy.txt" />
</java>
</target>

HTH

Outsource to an American programmer living in brazil!
http://www.braziloutsource.com/
iksrazal
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,149
Members
46,695
Latest member
StanleyDri

Latest Threads

Top