Doubt on Throwing own exceptions in java rmi?

Hello,
I am writing my own exception class and want to send exception object to the specific client.
But, Exception class constructor only accept string.
If I want to send both string and its corresponding error constant, how can I throw it.
thank you.

But, Exception class constructor only accept string.That is simply untrue. Have another look.

Similar Messages

  • Exception occured: java.rmi.ConnectException:

    hi
    i got an exception while running rmi client jar file....
    i want to invoke a method in the server..i have created two jar files one for server and another for client..
    i have added the policy file also..i tried by using server and client in the same system
    when i run the client jar i got an exception like given below..and i'm using netbeans 6...
    Exception occured: java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
    java.net.ConnectException: Connection refused: connect
    can any one help me to solve this problem?
    thanx in advance...

    hi thanx for the reply..
    i'm using windows XP, netbeans6, jdk6, sql server2000.
    when i started the rmiregistry this exception is over, but another exception comes
    Exception occured: java.rmi.NotBoundException: myebillRMIImpl
    my code is given below..please help me....a similar code worked properly without using netbeans..
    import java.sql.*;
    public interface ebillRMIInterface extends java.rmi.Remote
    public void insert(String str) throws java.rmi.RemoteException;
         public ResultSet select(String str1) throws java.rmi.RemoteException;
    import java.rmi.*;
    import java.rmi.server.UnicastRemoteObject;
    import java.sql.*;
    public class ebillRMIImpl extends UnicastRemoteObject implements ebillRMIInterface
    public ebillRMIImpl(String name) throws RemoteException
    super();
    try
    Naming.rebind(name, this);
    catch(Exception e)
    System.out.println("Exception occurred: " + e);
                        Statement stmt=null;
                        Connection con=null;
                        ResultSet res=null;
    public void insert(String str)
    try
                   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                   con = DriverManager.getConnection("jdbc:odbc:rmidsn", "sa", "");
                   stmt = con.createStatement();
                   stmt.executeUpdate(str);
                   con.close();
              catch (Exception e)
                   System.out.println(e);
              public ResultSet select(String str)
                   try
                   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                   con = DriverManager.getConnection("jdbc:odbc:rmidsn", "sa", "");
                   stmt = con.createStatement();
                   res=stmt.executeQuery(str);
                   con.close();
              catch (Exception e)
                   System.out.println(e);
              return res;
    import java.rmi.*;
    import java.rmi.registry.LocateRegistry;
    import java.rmi.registry.Registry;
    import java.rmi.server.UnicastRemoteObject;
    public class ebillRMIServer
    public static void main(String[] argv)
    System.setSecurityManager(new RMISecurityManager());
    try
    //Registry registry =LocateRegistry.getRegistry();
    ebillRMIImpl implementation = new ebillRMIImpl("myebillRMIImpl");
    catch (Exception e)
    System.out.println("Exception occurred: " + e);
    Client function is
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {     
    System.setSecurityManager(new RMISecurityManager());
    int itemid;
    String serverName ="";
    serverName = "localhost";
                        ResultSet res=null;
    String itid=jTextField1.getText();
    itemid=Integer.parseInt(itid);
    try
    //bind server object to object in client//rmi://host:<port>/correlator
    ebillRMIInterface ebillserver = (ebillRMIInterface) Naming.lookup("rmi://"+serverName+"/myebillRMIImpl");
    //invoke method on server object
    System.out.println("Date on server is " + d);*/
                                  String str="select * from Stock where itemid="+itemid;
                                  res=ebillserver.select(str);
    while(res.next())
    jTextField2.setText(res.getString(2));
    Float price=res.getFloat(4);
    String pr=String.valueOf(price);
    jTextField3.setText(pr);
    catch(Exception e)
    System.out.println("Exception occured: " + e);
    System.exit(0);
    System.out.println("RMI connection successful");
    }

  • Exception occurred: java.rmi.ServerException

    Hello,
    I am trying to run small rmi program on sun solaris unix server. but after running the rmiregistry when I have execute the server program, it's throwing me following error. The same program is running fine in my local windows machine.
    java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: RMITest.myRMIInterface
    at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:400)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:255)
    at sun.rmi.transport.Transport$1.run(Transport.java:168)
    at java.security.AccessController.doPrivileged(AccessController.java:274)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:164)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:506)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.handleRequest(TCPTransport.java:838)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:912)
    at java.lang.Thread.run(Thread.java:797)
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:263)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:239)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:358)
    at sun.rmi.registry.RegistryImpl_Stub.rebind(RegistryImpl_Stub.java:133)
    at java.rmi.Naming.rebind(Naming.java:174)
    at RMITest.myRMIImpl.<init>(myRMIImpl.java:14)
    at RMITest.myRMIServer.main(myRMIServer.java:12)
    I have check that this exception occured when IMPL class's naming.rebind method called.
    import java.rmi.*;
    import java.rmi.server.UnicastRemoteObject;
    public class myRMIImpl extends UnicastRemoteObject implements myRMIInterface
    public myRMIImpl(String name) throws RemoteException
    super();
    try
    Naming.rebind(name, this);
    catch(Exception e)
    System.out.println("Exception occurred: " + e);
    public java.util.Date getDate()
    return new java.util.Date();
    Can you help me how to solve this problem.
    Note : my rmiregistry is running on 4999 port.
    - Hiren Modi

    java.lang.ClassNotFoundException: RMITest.myRMIInterfaceThe Registry can't find that class on its CLASSPATH.
    Solution: do something about that. Either run the registry as a separate task with a suitable CLASSPATH setting, or run it in the server JVM via LocateRegistry.createRegistry().

  • Javax.ejb.EJBException: nested exception is: java.rmi.RemoteException:

    package library.client;
    import javax.naming.InitialContext;
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.lang.reflect.Method;
    import java.sql.ResultSet;
    import javax.ejb.*;
    import javax.naming.*;
    import javax.swing.*;
    import library.common.*;
    @SuppressWarnings("serial")
    public class LibraryClient extends JFrame implements ActionListener {
      private static LibraryInterface li;
      private JTextField book_author = new JTextField(10);
      private JTextField book_title = new JTextField(10);
      private JTextField book_isbn = new JTextField(10);
      private JLabel author_label = new JLabel("Podaj autora:");
      private JLabel book_title_label = new JLabel("Podaj tytul ksiazki");
      private JLabel isbn_label = new JLabel("Podaj ISBN");
      private JTextArea display_books = new JTextArea(20,50);
      private JButton search = new JButton("Search");
      private ResultSet resultset;
      public LibraryClient() {
        this("DEFAULT_CONTEXT");
    private JPanel createPanel1(){
          JPanel panel = new JPanel();
          panel.add(author_label);
          panel.add(book_author);
          panel.add(book_title_label);
          panel.add(book_title);
          panel.add(isbn_label);
          panel.add(book_isbn);
          panel.add(search);
          ////search.setActionCommand("ISBN");
          search.addActionListener(this);
          return panel;
    private JPanel createPanel2(){
          JPanel panel = new JPanel();
          panel.add(display_books);
          return panel;
    private JPanel createPanels(){
         JPanel panel = new JPanel();
        //Use default FlowLayout.
        panel.setLayout(new BorderLayout());
        panel.add(createPanel1(), BorderLayout.NORTH);
        panel.add(createPanel2(), BorderLayout.SOUTH);
        return panel;
      public  LibraryClient(String appType) {
        init(appType);
        JFrame frame = new JFrame("Library");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //    /final Table table = new Table();
        frame.setContentPane(createPanels());
        frame.pack();
    //    /f.setLocationRelativeTo(null);
        frame.setVisible(true);
      public void actionPerformed(ActionEvent e) {
             try {
                  display_books.setText("");
                  display_books.setText("Wyszukane Ksiazki\n");
                  if(!book_author.getText().equals("")){
                       resultset=li.getBookByAuthor(book_author.getText());
                  }else if(!book_title.getText().equals("")){
                       resultset=li.getBookByName(book_title.getText());
                  }else if(!book_isbn.getText().equals("")){
                       resultset=li.getBookByISBN(book_isbn.getText());
                  }else {
                       System.out.println("Before->resultset=li.getAllBooks()");
                       resultset=li.getAllBooks();
                       System.out.println("After->resultset=li.getAllBooks()");
                  while(resultset.next()){
                       System.out.println("in while resultset.next()"); 
                       String name = resultset.getString("name");
                         String author =resultset.getString("author");
                         String isbn = resultset.getString("ISBN");
                         display_books.append("\n"+ name + " " + author +" "+ isbn);
             } catch(Exception exc) { exc.printStackTrace(); }
      private void init(String type) {
        if (type.equals("JAVA_APP")) li = new library.ejb.LibraryBean();
        else if (type.equals("JAVA_CLIENT")) {
          try {
            InitialContext ic = new InitialContext();
            li = (LibraryInterface) ic.lookup("library.common.LibraryInterface");
          } catch (NamingException e) {
            e.printStackTrace();
      public static void main(String[] args) {
        if (args.length >= 1) new LibraryClient(args[0]);
        else new LibraryClient();
    }it throws the exception when it gets to
    any of the functions
    resultset=li.getBookByAuthor(book_author.getText());
    resultset=li.getBookByName(book_title.getText());
    resultset=li.getBookByISBN(book_isbn.getText());
    resultset=li.getAllBooks();
    Please help
    Thank You

    Hi,
    I also get the same error.have you got the solution,fi so explain me how to rectify the error
    Regards
    SamyMohan

  • How do i throw BPEL exception from java embedded activity

    Hello everybody,
    i want to use some embedded java code in my BPEL process (bpelx:exec). This code would sometimes throw exceptions. How can i deal with these exceptions to control my BPEL process? I would like, in a sense, to do some catching of java exceptions but at the BPEL level... for example, my java code would throw an exception, that my BPEL process would "catch" and react the way i want. Is it possible to do that?
    Thanks for your help!

    Re: Embedded Java in BPEL and exception handling

  • Exception occured: java.rmi.NotBoundException: ebillRMIImplInstance

    Hi pls help me ...
    this is the exception i got while running my client jar file...
    i;m not able to correct it...i'm using netbeans 6..
    my client method is as given below...
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {      
    System.setSecurityManager(new RMISecurityManager());
    int itemid;
    String serverName ="";
    String itid="";
    serverName = "localhost";
                        ResultSet res=null;
    itid=jTextField1.getText();
    //itemid=Integer.parseInt(itid);
    System.out.println(itid);
    try
    //bind server object to object in client//rmi://host:<port>/correlator
    ebillRMIInterface ebillserver = (ebillRMIInterface) Naming.lookup("rmi://"+serverName+"/ebillRMIImplInstance");
    System.out.println("asd");
    //invoke method on server object
    /*Date d = myServerObject.getDate();
    System.out.println("Date on server is " + d);*/
                                  String str="select * from Stock where itemid='"+itid+"'";
                                  res=ebillserver.select(str);
    while(res.next())
    jTextField2.setText(res.getString(2));
    Float price=res.getFloat(4);
    String pr=String.valueOf(price);
    jTextField3.setText(pr);
    String str1="update Stock set itemname='Tea250' where itemid='1'";
                   ebillserver.insert(str1);System.out.println("updated ");
    catch(Exception e)
    System.out.println("Exception occured: " + e);
    //System.exit(0);
    System.out.println("RMI connection successful");
    }

    The remote object hasn't bound itself to that registry under that name.

  • RemoteException: java.rmi.UnmarshalException in jdk 1.4.2

    i'm implementing an RMI over the jdk 1.4.2 (can't do it in the 1.5 or 1.6) i've seen this topic [http://forum.java.sun.com/thread.jspa?threadID=370196&messageID=1808449] but it didn't help me, or i'm doing something wrong...
    i know the RMI code is ok because it runs on java 1.6 (with the automatic generation of stubs and skeletons) but when i change the platform to 1.4 it throws the exception:
    RemoteException: java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
    java.lang.ClassNotFoundException: servidor.MensageiroImpl_Stub
    the VM is configured to use the -Djava.security.policy=C:\Projecto\Policy\permissions.policy both in the client and server
    please help me :S i've been burning my head with this for 3 days
    i leave my code here:
    The interface:
    package rmiinterface;
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    public interface Mensageiro extends Remote {
        public void sendMsg(String msg) throws RemoteException;
        public String readMsg() throws RemoteException;
    }the implementation:
    package servidor;
    import rmiinterface.Mensageiro;
    import java.rmi.RemoteException;
    import java.rmi.server.UnicastRemoteObject;
    public class MensageiroImpl extends UnicastRemoteObject implements Mensageiro {
        public MensageiroImpl() throws RemoteException {
            super();
        public void sendMsg(String msg) throws RemoteException {
            System.out.println(msg);
        public String readMsg() throws RemoteException {
            return "This is not a Hello World! message";
    }the server:
    package servidor;
    import rmiinterface.Mensageiro;
    import java.rmi.Naming;
    import java.rmi.RMISecurityManager;
    public class MensageiroServer {
        public MensageiroServer() {
            System.setSecurityManager(new RMISecurityManager());
            try {
                Mensageiro m = new MensageiroImpl();
                java.rmi.registry.LocateRegistry.createRegistry(1099);
                System.out.println("RMI registry successfully initiated");
                Naming.rebind("MensageiroService", m);
                System.out.println("Servidor Online");
            } catch (Exception e) {
                System.out.println("Trouble: " + e.getMessage());
        public static void main(String[] args) {
            new MensageiroServer();
    }and the client:
    package cliente;
    import rmiinterface.Mensageiro;
    import java.rmi.RMISecurityManager;
    import java.rmi.Naming;
    import java.rmi.RemoteException;
    import java.rmi.NotBoundException;
    import java.net.MalformedURLException;
    public class MensageiroClient {
        public MensageiroClient() {
        public static void main(String args[]) {
            System.setSecurityManager(new RMISecurityManager());
            try {
                Mensageiro m = (Mensageiro) Naming.lookup("//localhost/MensageiroService");
                System.out.println(m.readMsg());
                m.sendMsg("Hello World!");
            } catch (MalformedURLException e) {
                System.out.println();
                System.out.println("MalformedURLException: " + e.toString());
            } catch (RemoteException e) {
                System.out.println();
                System.out.println("RemoteException: " + e.toString());
            } catch (NotBoundException e) {
                System.out.println();
                System.out.println("NotBoundException: " + e.toString());
            } catch (Exception e) {
                System.out.println();
                System.out.println("Exception: " + e.toString());
    }NOTE: my IDE is Netbeans 6.1. and the client and server are in diffrent projects
    thanks in advance
    Best Regards,
    Carlos Daniel Ribeiro

    the stub and the skeleton are being generated, and they are there, in the server project! i don't know why the class defs for the stub filearen't downloded by the client project...I don't know why you think they will be downloaded. They won't be, unless you're using the codebase feature. The client needs the remote interface and the stub on its classpath, and all classes that the remote interface depends on, and so on recursively until closure. You have to do something about that.
    It works under 1.6 because it doesn't need the stub at all.

  • Exception:java.rmi.AccessException: CORBA NO_PERMISSION 0 No

    I was trying to run the Cart example with the J2EE but got the above exception. I was successful with the Converter example but not work with this one.
    Please help
    Tom

    Here is the exact message:
    D:\OnlineBooks\j2eetutorial\examples\ears>runclient -client CartApp.ear -name Ca
    rtClient -textauth
    Initiating login ...
    Enter Username:guest
    Enter Password:guest123
    Binding name:`java:comp/env/ejb/SimpleCart`
    Caught an unexpected exception!
    java.rmi.AccessException: CORBA NO_PERMISSION 0 No; nested exception is:
    org.omg.CORBA.NO_PERMISSION: minor code: 0 completed: No
    org.omg.CORBA.NO_PERMISSION: minor code: 0 completed: No
    at java.lang.Class.newInstance0(Native Method)
    at java.lang.Class.newInstance(Class.java:237)
    at com.sun.corba.ee.internal.iiop.messages.ReplyMessage_1_2.getSystemExc
    eption(ReplyMessage_1_2.java:93)
    at com.sun.corba.ee.internal.iiop.ClientResponseImpl.getSystemException(
    ClientResponseImpl.java:108)
    at com.sun.corba.ee.internal.POA.GenericPOAClientSC.invoke(GenericPOACli
    entSC.java:132)
    at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:459)
    at CartHomeStub.create(Unknown Source)
    at CartClient.main(CartClient.java:26)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.sun.enterprise.util.Utility.invokeApplicationMain(Utility.java:22
    9)
    at com.sun.enterprise.appclient.Main.main(Main.java:155)

  • UnmarshalException while using prop  java.rmi.server.ignoreStubClasses=true

    I have created a test program to check the behaviour of setting the java.rmi.server.ignoreStubClasses property to true on the server side and not setting this flag on the client side.
    This requirement is due to updation of an already running system, with stubs to a new version without stubs, without shutting down the system.
    The files used by me are given below.
    File Hello.java
    package example.hello;
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    public interface Hello extends Remote {
    String sayHello() throws RemoteException;
    File Server.java
    package example.hello;
    import java.rmi.registry.LocateRegistry;
    import java.rmi.registry.Registry;
    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 {
    LocateRegistry.createRegistry(1099);
    Server obj = new Server();
    Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0);
    // Bind the remote object's stub in the registry
    Registry registry = LocateRegistry.getRegistry();
    registry.bind("Hello", stub);
    System.err.println("Server ready");
    catch (Exception e)
    System.err.println("Server exception: " + e.toString());
    e.printStackTrace();
    File Client.java
    package example.hello;
    import java.rmi.registry.LocateRegistry;
    import java.rmi.registry.Registry;
    public class Client {
    private Client() {}
    public static void main(String[] args) {
    String host = (args.length < 1) ? null : args[0];
    try {
    Registry registry = LocateRegistry.getRegistry(host);
    Hello stub = (Hello) registry.lookup("Hello");
    String response = stub.sayHello();
    System.out.println("response: " + response);
    } catch (Exception e) {
    System.err.println("Client exception: " + e.toString());
    e.printStackTrace();
    First I run file Server.java using the following script (server.bat)
    java -Djava.rmi.server.ignoreStubClasses=true -classpath .; example.hello.Server
    pause
    Then the client is run using the following script (client.bat)
    java -classpath .; example.hello.Client 132.186.96.210
    pause
    While running the client, the following exception is obtained.
    Client exception: java.rmi.ServerException: RemoteException occurred in server thread; nested except
    java.rmi.UnmarshalException: error unmarshalling call header; nested exception is:
    java.rmi.UnmarshalException: skeleton class not found but required for client version
    java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
    java.rmi.UnmarshalException: error unmarshalling call header; nested exception is:
    java.rmi.UnmarshalException: skeleton class not found but required for client version
    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:343)
    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
    at example.hello.Client.main(Client.java:52)
    Caused by: java.rmi.UnmarshalException: error unmarshalling call header; nested exception is:
    java.rmi.UnmarshalException: skeleton class not found but required for client version
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:250)
    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)
    Caused by: java.rmi.UnmarshalException: skeleton class not found but required for client version
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:243)
    ... 6 more
    I am not able to figure out why this thing is happening, If i also set the property java.rmi.server.ignoreStubClasses=true on the client side everything goes fine. But this I can't do. I can't set the property on the client side as the system is up and already running.
    I am using JDK version 1.5.0_06. Same exception comes under JDK 6.0
    Any help will be highly appreciated.

    I think this is a bug. When you exported the Registry from your server JVM it was also exported with java.rmi.server.ignoreStubClasses=true, but the Registry bootstrap at the client requires the 1.1 stub protocol for compatiblity reasons so you got this error. I would report this on the Bug Parade.
    You could get around it by setting java.rmi.server.ignoreStubClasses after exporting the Registry.
    BTW java.rmi.server.ignoreStubClasses isn't supposed to do anything at the client whether true or false so you can cut your testing space in half.

  • Java.rmi.server.SkeletonMismatchException: interface hash mismatch

    I am trying to get a MBORemoteSet from the session, which actually gives me the list from the database table. when i click on a combo box returning me the list using the MBOSetRemote object it throws me the exception.
    could not load the labor codes from Maximo
    java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
         java.rmi.server.SkeletonMismatchException: interface hash mismatch
    java.rmi.server.SkeletonMismatchException: interface hash mismatch      
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:240)      
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:215)      
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:349)      
    at worktech.app.labor.WTLaborSet_Stub.setWhere(Unknown Source)

    Well this error occurs if the RMI files are different on the server and client side.
    It basically tells you that the stub and skeleton don't match with each other. Get the latest version of the RMI jar file or whatever file you are using on the server side to replace the file you are using oon the client side. This would make stub and skeletons to communicate with each other effectively . enjoy :)

  • Java.rmi.MarshalException: error marshalling arguments

    I've two class Client and Main. Eventnotify is implemented in class Client using RMI techniques. Here is sample
    public interface EventNotify extends Remote {
    void SendNotification (String str) throws RemoteException;
    public class Client implements EventNotify {
         //implementation of EventNotify
         public void SendNotification(String str) {
         System.out.println("from srver: ..." +str);
    class Main {
    public static void main(String[] args) {
    Client clnt = new Client();
    int val = stub.register_client(host, clnt); //THE ERROR IS HERE
    The idea is to pass remote objects from client to a server. I've a server program running continously, but the problem is on passing objects of type Client. I'm facing marshaling problem.
    AND THE ERROR IS
    Client exception: java.rmi.MarshalException: error marshalling arguments; nested exception is:
         java.io.NotSerializableException: Client
    java.rmi.MarshalException: error marshalling arguments; nested exception is:
         java.io.NotSerializableException: Client
         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:156)
         at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:195)
         at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:149)
         at $Proxy0.register_client(Unknown Source)
         at Main.main(Client.java:74)
    Thanks for helping.
    Caused by: java.io.NotSerializableException: Client
         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
         at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:343)
         at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:292)
         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:151)

    Probably I have a similar problem while calling remote object's method with parameter looks like that :
    public class ParamClass extends AbstractParamClass implements Runnable,
            java.io.Serializable {
        private NodeList field1; // part of crimson's tree
        private NamedNodeMap field2 = null;// part of crimson's tree
    public class RmiRemote extends AbstractRemote  { // Remote Object Class
    @Override
    public  Object remoteMethod1() throws RemoteException{
    ParamClass param = new  ParamClass("build with crimson");
    CustomInterface stub = (CustomInterface) registry.lookup(name);
    stub.callRemoteMethod(param); // exception here
    java.rmi.MarshalException: error marshalling arguments; nested exception is:
            java.io.NotSerializableException: org.apache.crimson.tree.AttributeSet
            at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:138)
            at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178)when I build param object with xerces - no exception occurs . Other methods of remote object doing well. Remote object extends AbstractRemote superclass derived from UnicastRemoteObject. How can I avoid this problem and call method with crimson's tree fields parameter?
    Thank you.

  • Java.rmi.UnmarshalException: error unmarshalling arguments;

    Hi!
    I'm a newbe with rmi, and I try to use a test program, from Thinking in Java:
    ITiempoPerfecto.java
    package c15.rmi;
    import java.rmi.*;
    interface ITiempoPerfecto extends Remote {
         long obtenerTiempoPerfecto() throws RemoteException;
    TiempoPerfecto.java
    package c15.rmi;
    import java.rmi.*;
    import java.rmi.server.*;
    import java.rmi.registry.*;
    import java.net.*;
    public class TiempoPerfecto extends UnicastRemoteObject implements ITiempoPerfecto {
         public long obtenerTiempoPerfecto () throws RemoteException {
              return System.currentTimeMillis();
         public TiempoPerfecto() throws RemoteException {
               super();
         public static void main(String[] args) throws Exception {
              System.setSecurityManager(new RMISecurityManager());
              TiempoPerfecto tp=new TiempoPerfecto();
              Naming.bind("//localhost/TiempoPerfecto",tp);
              System.out.println("Preparado para dar la hora");
    }and
    MostrarTiempoPerfecto.java
    package c15.rmi;
    import java.rmi.*;
    import java.rmi.registry.*;
    public class MostrarTiempoPerfecto {
         public static void main(String[] args) throws Exception {
              System.setSecurityManager( new RMISecurityManager());
              ITiempoPerfecto t=(ITiempoPerfecto)Naming.lookup("//localhost/TiempoPerfecto");
              for (int i=0;i<10;i++)
                   System.out.println("Tiempo perfecto: "+t.obtenerTiempoPerfecto());
    }I compile all the files normally.
    Later I do:
    rmiregistry &
    rmic c15.rmi.TiempoPerfecto(This only generate the file TiempoPerfecto_Stub.class, it's ok?)
    Without warnings or errors. But when I try to create a server object
    java c15/rmi/TiempoPerfectoI obtain this:
    Exception in thread "main" java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
            java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
            java.lang.ClassNotFoundException: c15.rmi.TiempoPerfecto_Stub
            at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:385)
            at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
            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)
    .......What is the mistake? What may I do to run this programs?
    Thank you!

    You must change your current directory to your class path (EX: java c15/rmi/TiempoPerfecto) then execute command remiregistry.

  • Javax.ejb.CreateException, java.rmi.RemoteException

    When I deployed my war file and jar file on jboss server I am getting the following exception:
    what will be cause:
    10:32:03,051 ERROR [LogInterceptor] EJBException in method: public abstract com.cisco.avm.jbossmysqlejb.CustomerSessionRemote com.cisco.avm.jbossmysqlejb.CustomerSessionRemoteHome.create() throws javax.ejb.CreateException,java.rmi.RemoteException:
    javax.ejb.EJBException: Invalid invocation, check your deployment packaging, method=public abstract com.cisco.avm.jbossmysqlejb.CustomerSessionRemote com.cisco.avm.jbossmysqlejb.CustomerSessionRemoteHome.create() throws javax.ejb.CreateException,java.rmi.RemoteException

    SLSB have only one constructor. If you have another overloaded. It will never be called.
    Regds
    Ashwani

  • Error: while generating SQL.java.rmi.ServerException:

    Hi:
    I tried the JGuru's "MusicStore" example. HOwever at Task 6 and 7 I am getting the following error:
    Error: while generating SQL.java.rmi.ServerException:
    RemoteException occured in server thread; nested exception is:
    * java.rmi.RemoteException: Error connecting to database;
    nested exception is:
    * SQL Exception: Failed to start database 'MusicStoreDB', see
    the next exception for details.
    Please make sure the database name/user/password is valid
    and the J2ee server and database are running.
    However when i check my database it is running perfectly:
    E:\>%j2ee_home%\bin\cloudscape -start
    Sun Feb 16 12:48:11 PST 2003: [RmiJdbc] Starting Cloudscape RmiJdbc Server Version
    Sun Feb 16 12:48:14 PST 2003: [RmiJdbc] COM.cloudscape.core.JDBCDriver registered i
    Sun Feb 16 12:48:14 PST 2003: [RmiJdbc] Binding RmiJdbcServer...
    Sun Feb 16 12:48:14 PST 2003: [RmiJdbc] No installation of RMI Security Manager...
    Sun Feb 16 12:48:14 PST 2003: [RmiJdbc] RmiJdbcServer bound in rmi registry
    Server:
    J2EE server listen port: 1050
    Naming service started:1050
    Binding DataSource, name = jdbc/DB2, url = jdbc:cloudscape:rmi:CloudscapeDB;crea
    te=true
    Binding DataSource, name = jdbc/Cloudscape, url = jdbc:cloudscape:rmi:Cloudscape
    DB;create=true
    Binding DataSource, name = jdbc/InventoryDB, url = jdbc:cloudscape:rmi:Cloudscap
    eDB;create=true
    Binding DataSource, name = jdbc/DB1, url = jdbc:cloudscape:rmi:CloudscapeDB;crea
    te=true
    Binding DataSource, name = jdbc/MusicStore, url = jdbc:cloudscape:rmi:MusicStore
    DB;create=false
    Binding DataSource, name = jdbc/XACloudscape, url = jdbc/XACloudscape__xa
    Binding DataSource, name = jdbc/XACloudscape__xa, dataSource = COM.cloudscape.co
    re.RemoteXaDataSource@1d88db7
    Starting JMS service...
    Initialization complete - waiting for client requests
    Binding: < JMS Destination : jms/Topic , javax.jms.Topic >
    Binding: < JMS Destination : jms/Queue , javax.jms.Queue >
    Binding: < JMS Cnx Factory : TopicConnectionFactory , Topic , No properties >
    Binding: < JMS Cnx Factory : QueueConnectionFactory , Queue , No properties >
    Binding: < JMS Cnx Factory : jms/QueueConnectionFactory , Queue , No properties
    >
    Binding: < JMS Cnx Factory : jms/TopicConnectionFactory , Topic , No properties
    >
    Starting web service at port: 8000
    Starting secure web service at port: 7000
    J2EE SDK/1.3.1
    Starting web service at port: 9191
    J2EE SDK/1.3.1
    J2EE server startup complete.
    Can anyone suggest me a way out..plz

    what type of persistent u r using also post ur query if bmp and check with another example with cmp.

  • Java.rmi.ServerException Problem

    The exception that has occured is java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: Process00Impl_Stub
    I have the interface, Client, Server and the Implementation java files
    in the same machine.
    11/29/2002 08:52p 282 Process00.class
    11/29/2002 08:25p 221 Process00.java
    11/29/2002 07:40p 215 Process00.java.bak
    11/29/2002 08:56p 1,008 Process00Client.java
    11/29/2002 08:55p 1,010 Process00Client.java.bak
    11/29/2002 08:57p 451 Process00Impl.class
    11/29/2002 08:57p 936 Process00Impl.java
    11/29/2002 08:52p 934 Process00Impl.java.bak
    11/29/2002 08:57p 2,153 Process00Impl_Skel.class
    11/29/2002 08:57p 3,938 Process00Impl_Stub.class
    11/29/2002 08:56p 995 Process00Server.class
    11/29/2002 08:57p 645 Process00Server.java
    11/29/2002 08:56p 643 Process00Server.java.bak
    I also have the _Stub.class. I do not know why I get this error. If any
    one have an idea, kindly share with me.
    Thanks.

    Hi,
    I had the same problem. In my machine, path was having jre1.1.7 before my jdk 1.4. So it was picking up from jre1.1.7.
    Java was happy when I moved my jdk1.4 path to the beginning of the path variable.
    Hope this helps you.

Maybe you are looking for

  • How do I access camera raw in PSE 11?

    I can't figure out how to access the Camera Raw plug-in for Photoshop Elements 11, on a Macbook Pro OSX.  In PSE, when I select "about plug-in" it brings up a box that shows version 7.1.0.354.  Does that mean it's already installed?  If so, how do I

  • ODI - issue executing a SP against tables in different oracle instance....

    Hello Gurus, I have written a SP in an ODI Procedure [not calling an SP]. The tables are located in the ODIDEV schema on another Oracle instance. I have successfully used the same SP but my odidev schema has been on the same oracle instance as my oth

  • URLRequest param set question

    i application URLRequest to post a new html page,which have some question for IE program: var url:URLRequest=new URLRequest("vodplay.html?name=22222"); navigateToURL(url,"_self"); when i apply ie to run this page,this param is null. when i app firefo

  • Tiger 10.4.5 on a Cube: add Classic?

    I have a 450MHz Cube, which had the drive reformatted and the Retail Tiger 10.4.4 installed; this is updated to 10.4.5. I have a 'Power Mac G4 Software Install' disk, part#691-2996-A, with OS 9.2. Can I get from here to a working Classic environment?

  • Problem when importing several (2,3 or 4) video files into one project.

    Im creating a project video with several videos running at the same time in one screen.  Sort of like a surveillance with different videos but for some reason one of the video file seems to change from 45 seconds to 3 minutes.  When all of the video