RMI classpath problem

Hi folks,
Using this tutorial;
http://java.sun.com/j2se/1.5.0/docs/guide/rmi/hello/hello-world.html
I was able to get the example working when I had all of my classes in the same directory as I ran it. E.g.
$pwd
/home/jmcparla/RMI2/server
$ ls
Hello.class  Server.class
$rmiregistry 2000 &
$ java Server
Server ready
$ pwd
/home/jmcparla/RMI2/client
$ ls
Client.class  Hello.class
$ java Client
response: Hello, world!So I decided to bundle the code into two Jars, Server.jar (containing Hello.class and Server.class) and Client.jar (Hello.class and Client.class). However this time when I went to start the Server;
$ pwd
/home/jmcparla/RMI2
$ ls
Server.jar  bin  client  policy  server  src
$ rmiregistry 2000 &
[1] 2848
$ java -jar Server.jarI got these exceptions;
Server exception: java.rmi.ServerException: RemoteException occurred in server t
hread; nested exception is:
        java.rmi.UnmarshalException: error unmarshalling arguments; nested excep
tion is:
        java.lang.ClassNotFoundException: Hello
java.rmi.ServerException: RemoteException occurred in server thread; nested exce
ption is:
        java.rmi.UnmarshalException: error unmarshalling arguments; nested excep
tion is:
        java.lang.ClassNotFoundException: Hello
        at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:396
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:250)
        at sun.rmi.transport.Transport$1.run(Transport.java:159)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:5
35)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTranspor
t.java:790)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
.java:649)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
        at java.lang.Thread.run(Thread.java:619)
        at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknow
n Source)
        at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
        at sun.rmi.server.UnicastRef.invoke(Unknown Source)
        at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
        at Server.main(Server.java:22)
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested ex
ception is:
        java.lang.ClassNotFoundException: Hello
        at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
        at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:386
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:250)
        at sun.rmi.transport.Transport$1.run(Transport.java:159)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:5
35)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTranspor
t.java:790)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
.java:649)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: Hello
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:247)
        at sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:7
11)
        at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:655)
        at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:592)
        at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:6
28)
        at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:294
        at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStrea
m.java:238)
        at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1531)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1493)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1
732)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
        ... 12 moreIt seems to be that it cannot find the Hello class file but this is bundled in Server.jar. Putting Server.jar on the classpath makes no difference.
Any ideas?

Cheers, using createRegistry(int) did the trick (along with a few other bits and pieces).
For the sake of aiding others with this kind of problem here's what I did. Remember most of it came from the Sun Java 5 RMI tutorial (http://java.sun.com/j2se/1.5.0/docs/guide/rmi/hello/hello-world.html).
1. Download and compile SUN's class file server (http://java.sun.com/javase/technologies/core/basic/rmi/class-server.zip). You'll need this to serve up the classes. Place this in a different directory to the one your going to use for the RMI tutorial.
2. Download the source files for the tutorial.
3. Use this directory structure (relative to /home/<username>)
| RMI/
        | src/
              | example/
                            | hello/
        | bin/4. Change the server to the following. The main points to note are the registry is now created (rather than located) and the port number used.
package example.hello;
import java.rmi.registry.Registry;
import java.rmi.registry.LocateRegistry;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class Server implements Hello {
    public Server() {}
    public String sayHello() {
     return "Hello, world!";
    public static void main(String args[]) {
     try {
            System.out.println("Starting Server");
         Server obj = new Server();
         Registry registry = LocateRegistry.createRegistry(2000);
            System.out.println("Created registry");
         Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0);
            System.out.println("Exported Server");
         // Bind the remote object's stub in the registry
         registry.rebind("Hello", stub);
            System.out.println("Bound Server to \"Hello\"");
         System.out.println("Server ready");
     } catch (Exception e) {
         System.err.println("Server exception: " + e.toString());
         e.printStackTrace();
}5. In the src dir compile with the following;
javac -d ../bin example/hello/*.java6. In the bin dir create the server jar with the following;
jar cvfe Server.jar example.hello.Server example/hello/Server* example/hello/Hello*7. In the bin dir create the client jar with the following;
jar cvfe Client.jar example.hello.Client example/hello/Client* example/hello/Hello*8. Move both Jars out of the bin directory to the parent one (e.g. /home/<username>RMI/) (to prevent the rmi registry / server using the current dir in the classpath if you've set it up that way).
9. Create the policy file in the RMI directory (see above directory structure);
grant codeBase * {
    permission java.security.AllPermission;
    permission java.net.SocketPermission "*", "accept, connect, listen, resolve";
};10. Start the class file server (read the notes that come with it) in its own directory. Note the port number used (different from RMI registry) and the Jar file on the end of the path.
java ClassFileServer 2001 /home/<username>/RMI/Server.jar11. If this has worked you should be able to visit the URL http://localhost:2001 and get a blank page (as opposed to a broken link notification).
12. Start the RMI server in the bin dir. Note the port is the same as the one used to launch the class file server.
java -Djava.security.policy=policy -Djava.rmi.codebase=http://localhost:2001/ -jar Server.jar13. You should see the following output;
Starting Server
Created registry
Exported Server
Bound Server to "Hello"
Server ready14. Start the client
java -jar Client.jar15. You should see the following output;
response: Hello, world!

Similar Messages

  • RMI Marshalling Problem:  weblogic.Admin PING

    WebLogic 5.1.0 with service pack 8 has been installed on a HPUX server. I'm
    trying to ping the server from an NT box, but I'm getting some RMI
    marshalling problems.
    Here is the command that I run on NT:
    C:\weblogic\jre1_2\jre\bin\java -classpath
    c:weblogic/lib/weblogic510sp.jar;c:/weblogic/classes;c:/weblogic/lib/weblogi
    caux.jar weblogic.Admin t3://HPServer:7001 PING > MarshallingProblem.txt
    Here is what is in MarshallingProblem.txt (modified server name):
    Failed to connect to t3://HPServer:7001 due to:
    [weblogic.rmi.UnexpectedException: Marshalling:
    - with nested exception:
    [weblogic.rjvm.PeerGoneException:
    - with nested exception:
    [weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Exception
    creating response stream ] - with nested exception:
    [java.io.InvalidClassException:
    weblogic.security.acl.internal.AuthenticatedUser; Local class not
    compatible: stream classdesc serialVersionUID=6699361079932480379 local
    class serialVersionUID=2825328378974757378]]]]
    I previously had similar problems pinging the server from the server itself
    until I included the servicepack in the classpath.
    Anyone have any idea what going on in this situation?
    Cameron Taggart

    Cameron
    Can you test with sp8 installed on your NT machine too ? And also make
    sure you set the classpath with the sp8 jar files on NT before you run
    weblogic.Admin PING
    Raj Alagumalai
    Cameron Taggart wrote:
    WebLogic 5.1.0 with service pack 8 has been installed on a HPUX server. I'm
    trying to ping the server from an NT box, but I'm getting some RMI
    marshalling problems.
    Here is the command that I run on NT:
    C:\weblogic\jre1_2\jre\bin\java -classpath
    c:weblogic/lib/weblogic510sp.jar;c:/weblogic/classes;c:/weblogic/lib/weblogi
    caux.jar weblogic.Admin t3://HPServer:7001 PING > MarshallingProblem.txt
    Here is what is in MarshallingProblem.txt (modified server name):
    Failed to connect to t3://HPServer:7001 due to:
    [weblogic.rmi.UnexpectedException: Marshalling:
    - with nested exception:
    [weblogic.rjvm.PeerGoneException:
    - with nested exception:
    [weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Exception
    creating response stream ] - with nested exception:
    [java.io.InvalidClassException:
    weblogic.security.acl.internal.AuthenticatedUser; Local class not
    compatible: stream classdesc serialVersionUID=6699361079932480379 local
    class serialVersionUID=2825328378974757378]]]]
    I previously had similar problems pinging the server from the server itself
    until I included the servicepack in the classpath.
    Anyone have any idea what going on in this situation?
    Cameron Taggart

  • Classpath problem

    i am here stuck..
    my dir structure is
    c:\my\xxx\yyy\zzz
    i have a code ...
    package xxx.yyy.zzz;
    class A
    // some code
    }i have compiled sucessfully and put the clsss file into c:\my\xxx\yyy\zzz folder.
    now i want to import it in another class
    like...
    package xxx.yyy; // note this
    import xxx.yyy.zzz.*; // note this
    class B
    // some code
    // creating instance of class A here
    }question is how do i compile and run it ?
    i am at c:\my---> what should be the command to compile and run the above code?
    plz give me the explicit command so that i can test and verify . i have given the dir structure.
    i have tried several ways but got class not found exception and errors . i know its a classpath problem but i could not figure out what should i type at the c:\my prompt.
    can u give exact command to run and compile the above code in steps ?
    thanx

    question is how do i compile and run it ?You don't with that code. You've defined class A to have "package visibility," meaning it can't be used from outside its package. You should declare it with public visibility instead, like "public class A {...".
    Once you change that, use these commands to compile and run:c:\my\>javac xxx/yyy/zzz/A.java
    c:\my\>javac xxx/yyy/B.java
    c:\my\>java xxx.yyy.B

  • Classpath Problem (Using JSAPI)

    Hi,
    I using IBM Via Voice as a the implementation of the JSAPI on my system. I've downloaded the speech for java pack from IBM Alphaworks and put it in the directory of
    c:\ibmjs
    This gives you access to the speech packages for utilisation in your programs so I should be able to import javax.speech in my programs. However the system doesn't see these classes.
    Heres my Autoexec...
    path=%path%;c:\jdk1.3.1_01\bin;c:\ibmjs\lib;
    CLASSPATH=%CLASSPATH%;c:\ibmjs\lib\ibmjs.jar;
    I presume the whole thing is just a classpath problem, does anybody have any idea from the above paths where I am going wrong?

    i guess you have to put some of ibm's dll files coming with speech for java in the path (not classpath). it's not sufficient to have the directories in the path.
    anyway, there come's an installation manual with speech for java which explaines all that.

  • Fragment Bundle Classpath problems

    Does anyone have any tips for solving classpath problems in fragment bundles? I'm getting a no-class-def that I can't explain.
    I've used maven to create a fragment, hosted by com.day.crx.sling.server, to create a custom login. It needs to call a web service, so I've included httpclient-4.2.3.jar. I can see this jar listed on the deployed fragment's Bundle-ClassPath, via the osgi>bundle console. When I inspect the bundle that maven created, I can find this jar contained in the bundle jar, in the directory specified in the Bundle-ClassPath. I even oppened the httpclient jar to ensure that the offending class (org/apache/http/client/HttpClient) is there.
    This is the first fragment that I've tried to build. Is there something I don't know about how they load classes?
    Does anyone have any tips or tricks on solving osgi classpath problems? I read that felix has some tools, but I haven't found any documentation about them.

    I'm still not sure why the classes didn't load, but I have a solution to my problem - don't try to include the jars in the fragment bundle. I tracked down osgi-ready versions of the libraries that I needed and and installed them.

  • Another simple classpath problem question

    Hi All
    Yes I know, there are a lots of questions about this matter, but I couldn't found a solution to my problem.
    I have a simple program:
    public class prueba {
            public static void main(String[] args) {
                    System.out.println("Ahi va...");
    }placed in /tmp/javier/prueba.java
    After compiled, I've tried to run it from / and then problems started:
    cd /
    java /tmp/javier/prueba
    Exception in thread "main" java.lang.NoClassDefFoundError: /tmp/javier/prueba (wrong name: prueba)
    I said, ok...it could be a classpath problem...then:
    java -cp /tmp/javier/ /tmp/javier/prueba
    Exception in thread "main" java.lang.NoClassDefFoundError: /tmp/javier/prueba
    Damn, another try...
    java -cp .:/tmp/javier/ /tmp/javier/prueba
    Exception in thread "main" java.lang.NoClassDefFoundError: /tmp/javier/prueba (wrong name: prueba)
    Jesus Christ....may be the last slash....
    java -cp .:/tmp/javier /tmp/javier/prueba
    Exception in thread "main" java.lang.NoClassDefFoundError: /tmp/javier/prueba (wrong name: prueba)
    Oh...no.... may be classpath to java classes..
    java -cp .:/usr/java/j2sdk1.4.2_01/lib/jre/:/tmp/javier/ /tmp/javier/prueba
    Exception in thread "main" java.lang.NoClassDefFoundError: /tmp/javier/prueba (wrong name: prueba)
    Well, I don't know why this error happens....
    Please, could somebody help me !!!
    Thanks in advance...
    <jl>

    It's not too early to start following the Sun coding
    conventions for Java:
    http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.
    tmlHi
    thanks for your reply.
    Yes, I agree. I use conventions with my programs. But my real problem was with a real application and then I did quickly this simple code to help others to understand the problem and give a fast reply...
    Let me know if that works. (It was fine on my
    machine.) - MODYes it works fine, thanks.... and Damn...Murphys law again, the only option I didn't tried is the solution to my problem... :)
    Thanks again...

  • Classpath problems in EAR packaging?

    I try to access an EJB from a JSP. The JSP resides in web.war and the bean is in ejb.jar, and both of these are packaged together in an ear.
    I get a compile error when I try opening a JSP. I've had this problem in all my attempts to use my bean classes from JSP.
    My browser reports that the compiler cannot find the beans package. I have servlets within the war-file that are able to find the beans package, but the JSPs aren't.
    My ear-file contains 3 files
    ejb.jar
    web.war
    META-INF\MANIFEST.MF
    The manifest classpath points to ejb.jar and web.war
    My guess is that this has something to do with the way this is deployed by GlassFish.
    The application is deployed in the
    domains\mydomain\applications\j2ee-apps\myear\
    This directory contains the expanded files:
    ejb_jar\
    web_war\
    META-INF
    So the Java classes under web_war\ are able to see the Java classes under ejb_jar\ (i.e. my servlets)
    However; when GlassFish creates Java files from the JSPs and then tries to compile them, these files are placed under
    domains\mydomain\generated\jsp\j2ee-apps\myear\web_war\org\apache\jsp\jsp
    This might be correct for all I know, but apparently the compiler is unable to find the Java classes located under the mydomain\applications\.. directory when compiling classes located under the mydomain\generated\.. directory. There are no other files from my ear anywhere in the "generated" directory.
    So to me this seems to be some kind of classpath problem, as the compiler cannot find the needed files.
    Does this make any sense to anyone?
    PS
    In my ear, the JSPs are placed in the web.war. The war file looks like this:
    jsp\
       myjsp.jsp
    META-INF
       MANIFEST.MF
    WEB-INF
       web.xml
       lib\
          mylib.jarThanks
    \\Marius

    Marius,
    If you want communicate the bean you have to do following things.
    . Create a factory for the correct protocol
    . Obtain a Home
    . Use the Home to create stubs to the remote object
    So you want to call the Home and Remote interfaces to access the bean. When you run the client program, it will create the remote object that time it has to search the Home and Remote interfaces. So you have included those files for references in following location
    WEB-INF/classes
         -- <Home Interface File Name>.class
         -- <Remote Interface File Name>.class
    Or
    WEB-INF/lib
         -- <Bean Jar file name>.jar
    I think you will understand.
    -Mani

  • Again classpath problem

    again classpath problem.... i have tried to solve it in many ways but all failed. here is one
    instance of my effort which did not give me success.
    i have a FOLDER > c:/com/abc/def/ijk
    and files......
    MyClass.java
    ==============
    package com.abc.def.ijk
    class MyClass
    // blah
    // blah
    }c:\com\abc\def\ijk>javac MyClass.java ===>compiled fine and created a class file.
    and also one more file.....
    OneMoreClass.java
    =================
    import com.abc.def.ijk.MyClass
    class OneMoreClass
    // blah
    // blah
    }c:\com\abc\def\ijk>javac OneMoreClass.java ===> Error!!! package com.abc.def.ijk does not exist !!!!
    how can i solve it ?

    yea, this works....eariler i also usued to do this
    way. but this time i forgot.
    by the way, why individually it did not work !!!.Because you were in the package directory itself, and the classpath was set to the cwd, so java was looking for package directories at this level.
    and also when i specify directly by
    c:\com\abc\def\ijk
    javac  -classpath c:\com\abc\def\ijk\MyClass
    OneMoreClass.java ...it does not work!!.
    STRANGE! why ?Because by stating the package directory as classpath, you do the same as explained above. Stay out of package directories, stay one level above them, don't regard them as common directories. When declaring classpaths, don't mention package directories but the directories that contain them.

  • JDBC and Classpath problems on OpenVMS

    Hello,
    I'm working on an OpenVMS server and I got a simpler Java application that needs to establish a connection to an Oracle database, the application works perfectly well on Windows but when I moved to OpenVMS I got some problems with the oracle driver.
    I believe I�m using the correct driver, I already checked on the oracle site according to my java version (1.4.2) and my database version (oracle 9i 9.2.0.7.0)
    This is the error:
    $java -jar miss.jar "DnBProcess"
    About to start loading parameters for the MISS Proxy.
    Successfully load parameters for the MISS Proxy.
    About to load interface settings for DnBProcess
    Settings for DnBProcess succesffully loaded.
    About to load interface DnBProcess
    About to start loading parameters for DnB Interface.
    Successfully load parameters for DnB Interface.
    Interface DnBProcess succesffully loaded.
    About to execute interface DnBProcess
    Connecting to the database...
    java.lang.NoClassDefFoundError: oracle/jdbc/OracleDriver
    at miss.DnBProcess.ExecuteQueryToFile(DnBProcess.java:85)
    at miss.DnBProcess.Execute(DnBProcess.java:178)
    at miss.Proxy.ExecuteInterface(Proxy.java:160)
    at miss.Proxy.main(Proxy.java:207)
    I know is a classpath problem, and my classpath on VMS looks like this:
    define JAVA$CLASSPATH .,SYS$COMMON:[JAVA$142.LIB]TOOLS.JAR,SYS$COMMON:[JAVA$142.LIB]DT.JAR,SYS$COMMON:[JAVA$142.JRE.LIB]RT.JAR, USER1:[MONTEALEGRE.TEST.LIBS]OJDBC14.JAR,USER1:[MONTEALEGRE.TEST.MISS.LIBS]OJDBC14.JAR,[]
    As you can see I added the �ojdbc14.jar� in different folders but my application seems not to find it.
    Does anyone know how to set the classpath properly on VMS? Or maybe give me some tips that could lead me to find a solution to this problem.
    Thanks.
    Ileana.

    I would try googling for OpenVMS classpath. Unfortunatley the first result is this thread but there are a bunch of resources from IBM and HP listed and maybe they can help you.

  • Help classpath problem j2sdk1.4.2_04

    help classpath problem j2sdk1.4.2_04
    how can i run the java program with specify the file location
    such as :
    -----this one is fine ok and return HelloWorld.class-----
    [root@localhost root]javac /serverData/studentAC/s001/HelloWorld.java
    -----but this one cause exception-----
    [root@localhost root]java /serverData/studentAC/s001/HelloWorld
    -----result-----
    Exception in thred "main" java.lang.NoClassDefFoundError: /serverData/studentAC/s001/HelloWorld
    [root@localhost root]
    I have tried a lot of classpath setting:
    I just want to compile and run the java program without specify the classpath only !! please help !!! and give suggest !! if you have this exp!!
    # ---1
    #PATH=/usr/java/j2sdk1.4.2_04/bin:$PATH:$HOME/bin:./
    #export PATH
    #export JAVA_HOME=/usr/java/j2sdk1.4.2_04/
    #export #CLASSPATH=/usr/java/j2sdk1.4.2_04/lib/tools.jar:/usr/java/j2sdk1.4.2_04/jre/lib/rt.jar:./
    # ---2
    #set java environment
    # Java Setup Section START
    export JAVA_HOME="/usr/java/j2sdk1.4.2_04"
    export JRE="$JAVA_HOME/jre"
    export CLASSPATH="$JAVA_HOME/lib:$JRE/lib:$JAVA_HOME/lib/tools.jar:."
    export PATH="$PATH:$JAVA_HOME/bin"
    # Java Setup Section END
    # ---3
    #PATH=$PATH:/usr/java/j2sdk1.4.2_04/bin
    #JAVA_HOME=/usr/java/j2sdk1.4.2_04/
    #export PATH
    # ---4
    # Java Setup Section START
    #JAVA_HOME=/usr/java/j2sdk1.4.2_04
    #export JAVA_HOME
    #CLASSPATH=$CLASSPATH:/usr/java/j2sdk1.4.2_04/lib:/usr/java/j2sdk1.4.2_04/jre/lib:./
    #export CLASSPATH
    #PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
    #export PATH
    # Java Setup Section END
    # ---5
    #export PATH=$PATH:/usr/java/j2sdk1.4.2_04/bin
    #export JAVA_HOME=/usr/java/j2sdk1.4.2_04
    #export CLASSPATH=/usr/java/j2sdk1.4.2_04/lib:$CLASSPATH:.
    # ---6
    #====================================================
    #export JAVA_HOME=/usr/java/j2sdk1.4.2_04
    #export PATH=$JAVA_HOME/bin:$PATH
    #export CLASSPATH=/usr/java/j2sdk1.4.2_04/lib:$CLASSPATH
    #====================================================

    I think this will work. java -classpath /serverData/studentAC/s001 HelloWorld

  • Servicegen classpath problem

    I'm trying to find out the status of the servicegen classloading problem
    (specifying a classpath in a servicegen task causes class cast exceptions).
    We are currently using the workaround described in this group which is
    putting the weblogic jars in the system classpath. This workaround is very
    unwieldy in our build environment. Is there any estimate on when the
    problem will be fixed?

    And was it? I am using 7.0sp4 and am getting classpath problems in servicegen.
    The problem I am having is that the type generation fails to find any of the weblogic
    utility classes, sug as weblogic.xml.schema.binding.util.runtime.PropertyInfo
    (and many many others)
    "Neal Yin" <[email protected]> wrote:
    This will be fixed in 7.0sp3 and 8.1sp1.
    Thanks,
    -Neal
    "John Horner" <[email protected]> wrote in message
    news:[email protected]..
    I'm trying to find out the status of the servicegen classloading problem
    (specifying a classpath in a servicegen task causes class castexceptions).
    We are currently using the workaround described in this group whichis
    putting the weblogic jars in the system classpath. This workaroundis
    very
    unwieldy in our build environment. Is there any estimate on when the
    problem will be fixed?

  • A classpath problem?

    Hi
    I've been following two different tutorials on RMI, but seem to get stuck at the same point with both. When I'm trying to do rmic on the implementation-classes it complains that the java.rmi.server.UnicastRemoteObject class can't be found... I've tried setting the classpath to both c:\myjavahome\lib, c:\myjavahome\jre\lib and lots of other paths without any success. (I'm running Windows XP by the way).
    If anyone have a clue to what's causing my problem, please tell me...
    Is there any spesific *.jar file I have to include in the classpath? The java.rmi package should be part of the j2sdk core, right? Or is there some additional extensions I need to acquire?
    Regards tores

    You do need the <java home> in the -classpath, see below
    http://forum.java.sun.com/thread.jsp?forum=58&thread=555245&tstart=0&trange=15

  • Classpath problem in exploded ear

    I'm having problems deploying an application in a new environment. We deploy Mercury.ear as an exploded ear under
    Windows in a single-server domain without any problem.
    I am tasked with setting up a WL cluster as the first step in our cluster certification/testing (under Linux/RedHat ASE 3.0).
    We are using WL 8.1. SP2. This should be a relatively trivial task, but I must be missing something obvious,
    because I've been banging my head on it the last couple of days.
    Basically, I have two WL managed servers, ClusterMember1 and ClusterMember2 and an admin server AdminServer created in a WL domain.
    All servers start normally (when no applications are deployed to the managed servers).
    I have appended our entire config.xml to the end of this post, but here is the relevant <Application> section:
    <Application Name="Mercury"
    Path="/root/bea/user_projects/domains/clusterdomain/applications/Mercury"
    StagingMode="nostage" TwoPhase="true">
    <EJBComponent Name="MercuryEJB.jar" Targets="ClusterMember1" URI="MercuryEJB.jar"/>
    <WebAppComponent Name="Apollo" Targets="ClusterMember1" URI="MercuryWeb.war"/>
    <ConnectorComponent Name="SpectraConnector.rar"
    Targets="ClusterMember1" URI="SpectraConnector.rar"/>
    </Application>
    I am only attempting to deploy to managed server ClusterMember1 at this time.
    When I attempt to start ClusterMember1:
    ./startManagedWebLogic.sh ClusterMember1 http://localhost:9001 &
    It starts up, syncs with the admin server, and then attempts to deploy the Mercury application. I get the following exception when it attempts to start the Mercury application:
    <Feb 1, 2006 10:07:55 AM CST> <Error> <HTTP> <BEA-101216> <Servlet: "context" failed to preload on startup in Web application: "Apollo".
    javax.servlet.ServletException: Error registering bean with name 'ApolloSessionManager' defined in URL [file:/root/bea/user_projects/domains/clusterdomain/applications/Mercury/mercuryresources.jar/resources/xml/springconfig/Service-DAO-config.xml]: Class that bean class [com.sg.sims.mercury.apolloweb.service.processor.ApolloSessionManager] depends on not found; nested exception is java.lang.NoClassDefFoundError: com/sg/sims/mercury/apolloweb/service/processor/ApolloSessionManager
         at weblogic.servlet.internal.ServletStubImpl.createServlet()Ljavax/servlet/Servlet;(ServletStubImpl.java:985)
    {...snipped...}
    Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'ApolloSessionManager' defined in URL [file:/root/bea/user_projects/domains/clusterdomain/applications/Mercury/mercuryresources.jar/resources/xml/springconfig/Service-DAO-config.xml]: Class that bean class [com.sg.sims.mercury.apolloweb.service.processor.ApolloSessionManager] depends on not found; nested exception is java.lang.NoClassDefFoundError: com/sg/sims/mercury/apolloweb/service/processor/ApolloSessionManager
         at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinition(Lorg/w3c/dom/Element;Ljava/lang/String;)Lorg/springframework/beans/factory/config/BeanDefinition;(DefaultXmlBeanDefinitionParser.java:366)
    {...snipped...}
    Caused by: java.lang.NoClassDefFoundError: com/sg/sims/mercury/apolloweb/service/processor/ApolloSessionManager
         at java.lang.Class.forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;(Unknown Source)
         at org.springframework.beans.factory.support.BeanDefinitionReaderUtils.createBeanDefinition(Ljava/lang/String;Ljava/lang/String;Lorg/springframework/beans/factory/config/ConstructorArgumentValues;Lorg/springframework/beans/MutablePropertyValues;Ljava/lang/ClassLoader;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;(BeanDefinitionReaderUtils.java:50)
    {...snipped...}
    Clearly, Spring can't find the ApolloSessionManager class (or one of its dependent classes, the error message is somewhat unclear in places).
    However, the ApolloSessionManager.class file is there, under the mercurybusiness.jar directory (with package structure).
    // from ${DOMAIN_HOME}/applications/Mercury:
    ls -la mercurybusiness.jar/com/sg/sims/mercury/apolloweb/service/processor/ApolloSessionManager
    -rw-r--r-- 1 root root 7162 Jan 31 17:20 mercurybusiness.jar/com/sg/sims/mercury/apolloweb/service/processor/ApolloSessionManager.class
    mercurybusiness.jar (in turn) is present in the MercuryEJB.jar MANIFEST.MF file:
    // ${DOMAIN_HOME}/applications/Mercury/MercuryEJB.jar/META-INF/MANIFEST.MF:
    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.6.1
    Created-By: 1.4.2_05-b04 (Sun Microsystems Inc.)
    Class-Path: mercurycommon.jar mercuryresources.jar mercurybusiness.jar mercuryserviceflow.jar mercuryutils.jar spectraconnector.rar {...snipped...}
    The same situation appears for the classes that ApolloSessonManager depends on: MercuryLogger (a log4j wrapper) and the HTTPClient.jar classes
    (e.g. Cookie, etc), except 3rd party jars are listed in the MANIFEST.MF of MercuryEJB.jar but are not exploded.
    There is no weblogic-application.xml file to override the default classloader hierarchy, so my understanding
    is that everything in the application should share a single classloader.
    So I am at a loss to understand why classes in MercuryWeb.war can not load classes in dependent jars of MercuryEJB.jar.
    As a note, if I add /root/bea/user_projects/domains/clusterdomain/applications/Mercury/mercurybusiness.jar to the CLASSPATH variable in startManagedWebLogic.sh,
    this error disappears of course, and it barfs on the next application class it can't find (in one of the other exploded jars that MercuryEJB.jar depends on.
    Can someone help point out what I may be missing?
    Chris Goodacre
    // config.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <Domain ConfigurationVersion="8.1.5.0" Name="clusterdomain">
    <Server Cluster="SIMS_TEST_CLUSTER_1" ListenAddress=""
    ListenPort="9001" Name="AdminServer" NativeIOEnabled="true"
    ReliableDeliveryPolicy="RMDefaultPolicy" ServerVersion="8.1.5.0">
    <SSL Enabled="false" HostnameVerificationIgnored="false"
    IdentityAndTrustLocations="KeyStores" Name="AdminServer"/>
    </Server>
    <WSReliableDeliveryPolicy DefaultRetryCount="10"
    DefaultTimeToLive="60000" Name="RMDefaultPolicy" Store="FileStore"/>
    <Security Name="clusterdomain"
    PasswordPolicy="wl_default_password_policy"
    Realm="wl_default_realm" RealmSetup="true"/>
    <EmbeddedLDAP
    CredentialEncrypted="{3DES}dMeE/vNpCcbjzOMZGfNeShv5VFZuQ=" Name="clusterdomain"/>
    <SecurityConfiguration
    CredentialEncrypted="{3DES}jFRG5NzABP8IAJa5M/PNNRCtZYaqkc2zUTYjlysL+md+TAgZw6IfgCjzzre4e7p5gyJEt+0UkPXNleN0QtW7Ef"
    Name="clusterdomain" RealmBootStrapVersion="1"/>
    <Realm FileRealm="wl_default_file_realm" Name="wl_default_realm"/>
    <FileRealm Name="wl_default_file_realm"/>
    <PasswordPolicy Name="wl_default_password_policy"/>
    <JMSConnectionFactory DefaultDeliveryMode="Non-Persistent"
    JNDIName="jms/ConnectionFactory" Name="ConnectionFactory" Targets="AdminServer"/>
    <JMSFileStore Directory="rmfilestore" Name="FileStore"/>
    <JMSServer Name="WSStoreForwardInternalJMSServerAdminServer"
    Store="FileStore" Targets="AdminServer">
    <JMSQueue CreationTime="1123128740234"
    JNDIName="jms.internal.queue.WSStoreForwardQueue"
    JNDINameReplicated="false" Name="WSInternaljms.internal.queue.WSStoreForwardQueueAdminServer"/>
    <JMSQueue CreationTime="1123128740390"
    JNDIName="jms.internal.queue.WSDupsEliminationHistoryQueue"
    JNDINameReplicated="false" Name="WSInternaljms.internal.queue.WSDupsEliminationHistoryQueueAdminServer"/>
    <JMSQueue CreationTime="1123128837453" JNDIName="jms/MenuQueue"
    Name="MenuQueue" StoreEnabled="false"/>
    <JMSQueue CreationTime="1123128864296"
    JNDIName="jms/MenuXMLQueue" Name="MenuXMLQueue" StoreEnabled="false"/>
    <JMSQueue CreationTime="1123128892343"
    JNDIName="jms/DataSyncQueue" Name="DataSyncQueue" StoreEnabled="false"/>
    <JMSQueue CreationTime="1123128915421"
    JNDIName="jms/LoginRefreshQueue" Name="LoginRefreshQueue" StoreEnabled="false"/>
    <JMSQueue CreationTime="1123128937046"
    JNDIName="jms/ProfileQueue" Name="ProfileQueue" StoreEnabled="false"/>
    <JMSQueue CreationTime="1123128957125"
    JNDIName="jms/ReportsQueue" Name="ReportsQueue" StoreEnabled="false"/>
    </JMSServer>
    <Cluster Name="SIMS_TEST_CLUSTER_1"/>
    <Server Cluster="SIMS_TEST_CLUSTER_1" ExpectedToRun="false"
    ListenPort="9999" Name="ClusterMember1" ServerVersion="8.1.5.0">
    <ServerDebug Name="ClusterMember1"/>
    <SSL IdentityAndTrustLocations="KeyStores" Name="ClusterMember1"/>
    <KernelDebug Name="ClusterMember1"/>
    <Log Name="ClusterMember1"/>
    <ServerStart Name="ClusterMember1"
    PasswordEncrypted="{3DES}TC7nfOvKF0xwJB/f+tyYwQ==" Username="toolbox"/>
    <WebServer Name="ClusterMember1"/>
    <COM Name="ClusterMember1"/>
    <IIOP Name="ClusterMember1"/>
    <JTAMigratableTarget Name="ClusterMember1" UserPreferredServer="ClusterMember1"/>
    <JTARecoveryService Name="ClusterMember1"/>
    </Server>
    <MigratableTarget Cluster="SIMS_TEST_CLUSTER_1"
    Name="ClusterMember1 (migratable)"
    Notes="This is a system generated default migratable target for a server. Do not delete manually." UserPreferredServer="ClusterMember1"/>
    <Server Cluster="SIMS_TEST_CLUSTER_1" ExpectedToRun="false"
    ListenPort="9998" Name="ClusterMember2" ServerVersion="8.1.5.0">
    <ServerDebug Name="ClusterMember2"/>
    <SSL IdentityAndTrustLocations="KeyStores" Name="ClusterMember2"/>
    <KernelDebug Name="ClusterMember2"/>
    <Log Name="ClusterMember2"/>
    <ServerStart Name="ClusterMember2"
    PasswordEncrypted="{3DES}TC7nfOvKF0xwJB/f+tyYwQ==" Username="toolbox"/>
    <WebServer Name="ClusterMember2"/>
    <COM Name="ClusterMember2"/>
    <IIOP Name="ClusterMember2"/>
    <JTAMigratableTarget Name="ClusterMember2" UserPreferredServer="ClusterMember2"/>
    <JTARecoveryService Name="ClusterMember2"/>
    </Server>
    <MigratableTarget Cluster="SIMS_TEST_CLUSTER_1"
    Name="ClusterMember2 (migratable)"
    Notes="This is a system generated default migratable target for a server. Do not delete manually." UserPreferredServer="ClusterMember2"/>
    <JDBCConnectionPool DriverName="com.sybase.jdbc2.jdbc.SybDriver"
    Name="MercuryJDBCConnPool"
    PasswordEncrypted="{3DES}Enwr7V6DdUk="
    Properties="user=dbuser;url=jdbc:sybase:Tds:10.15.3.66:4100/ENT_60_DEV;networkProtocol=Tds;portNumber=4100;userName=dbuser;databaseName=ENT_60_DEV;serverName=10.15.3.66"
    Targets="SIMS_TEST_CLUSTER_1" TestTableName="SQL SELECT 1" URL="jdbc:sybase:Tds:10.15.3.66:4100/ENT_60_DEV"/>
    <JDBCDataSource JNDIName="jdbc/MercuryDS" Name="MercuryDS"
    PoolName="MercuryJDBCConnPool" Targets="SIMS_TEST_CLUSTER_1"/>
    <MigratableTarget Cluster="SIMS_TEST_CLUSTER_1"
    Name="AdminServer (migratable)"
    Notes="This is a system generated default migratable target for a server. Do not delete manually." UserPreferredServer="AdminServer"/>
    <Application Name="Mercury"
    Path="/root/bea/user_projects/domains/clusterdomain/applications/Mercury"
    StagingMode="nostage" TwoPhase="true">
    <EJBComponent Name="MercuryEJB.jar" Targets="ClusterMember1" URI="MercuryEJB.jar"/>
    <WebAppComponent Name="Apollo" Targets="ClusterMember1" URI="MercuryWeb.war"/>
    <ConnectorComponent Name="SpectraConnector.rar"
    Targets="ClusterMember1" URI="SpectraConnector.rar"/>
    </Application>
    </Domain>
    ////////////////////////////////////////////////////////////

    Sorry, I don't have the response to your question.
    But I'd like to know how youmake your servlet and your applet communicate.
    I'm building a web site using both applets and servlet. And I nned to make them communicate. I'm trying to use RMI but I get many problems.
    Can I know Which solution you have chosen for applet-servlet communication ?
    Thank's.

  • Not another classpath problem...

    I'm trying to use the TableExample demo from jdk1.3.1. I'm using cloudscape as the database for this from the j2sdkee1.3.1.
    The database starts no problem (rmi mode).
    So I run the example and provide the database driver in the popup window, only to get the exception:
    java.lang.ClassNotFoundException: COM.cloudscape.core.RmiJdbcDriver
    So it can't find the class at all. So to try things out I attempt to run this class (knowing that it won't have a main method, but just to see if it is found):
    C:\jdk1.3.1\demo\jfc\TableExample>java -classpath %CLASSPATH% COM.cloudscape.core.RmiJdbcDriver
    Exception in thread "main" java.lang.NoSuchMethodError: main
    So my system can find the class but not the main method in it. So why can't the demo application also find this class?
    I must have read lots of tracks on classpath and though I knew what I was doing (adding all paths/jars to the classpath environment variable). Obviously I don't!
    ps Both running the application and trying to run the class were from the same shell using the same value of classpath.

    I work under NT 4.0 and am new to java. I have this batch file which I run in a command window before starting to work:
    PATH=.;D:\Java\jdk1.3.1_02\bin;D:\Java\jdk1.3.1_02\jre\bin;C:\WINNT\system32;C:\WINNT;
    SET CLASSPATH=D:\Java\jdk1.3.1_02\jre\lib;.
    Notice the ".", that tells Windows NT to look in the current directory.
    I do it this way because I have other development tools installed which also use Java and I did not want to interfere with them as I was learning.
    Good luck
    Bill

  • JavaFx + rmi server problem

    I have a problem not with code but with the way how rmi is working. I have such a classes for Server side which is RmiServer.java RmiInterface.java and UNode.java (this one is for supporting linked lists on server side) and my client side looks like main.fx, list.fx RmiClient.java and RmiInterface.java. The problem is that server files and client files are suppose to be in the same directory. Im using netbeans and I can not create an fx project with two main classes. So what i was trying to do is to create two projects one for server and second for client + fx script. But then I get the error about paths. And I can not copy those files because If i do so they immediately appear in second project. So guys do you have any idea how can I solve this problem. If it is helpful I can attach java files. Because what I understood is the server side is suppose to run all the time and different clients get connected to it so it can not be in the same project.
    P.S. When I was checking the rmi without connecting it to javafx it was working properly.
    Sorry for my English:P
    Edited by: ZIelonyWpaletki on Oct 21, 2009 1:11 PM

    Sometimes you are starting the RMI Registry with the correct classpath, or in the correct directory, and sometimes you aren't.

Maybe you are looking for