Make sure that the class that u are importing from util package are
serializable.
sivakumar


> ----------
> From:         Edward Barrett[SMTP:[EMAIL PROTECTED]]
> Reply To:     A mailing list for Enterprise JavaBeans development
> Sent:         Thursday, June 01, 2000 6:42 PM
> To:   [EMAIL PROTECTED]
> Subject:      Marshalling error in simple bean - please help
>
> I have a very simple Stateless session bean with a single method that
> returns an Enumeration (created from a Vector) of Serializable objects,
> yet I am getting a marshalling error.
>
> I'm new to this and suspect it is something very simple - help would be
> much appreciated.
>
> The remote interface is as follows:
>
> ---
> import javax.ejb.*;
> import java.rmi.RemoteException;
> import java.util.Enumeration;
> import java.util.Properties;
>
> public interface Test extends EJBObject
> {
>   public Enumeration getResults(Properties criteria)
>     throws RemoteException;
> }
> ----
>
> The implementation of the remote method is as follows:
>
> ----
>   public Enumeration getResults(Properties criteria)
>   {
>     // HARD-CODED STUB
>
>     Vector v = new Vector();
>
>     v.addElement( new TestDetails(
>                       new Integer(1), "A","Low Cost Term",
>                       new Float(10.00) ) );
>
>
>     v.addElement( new TestDetails(
>                       new Integer(2), "A","Portable Term",
>                       new Float(15.00) ) );
>
>     v.addElement( new TestDetails(
>                       new Integer(3), "B","Low Start Term",
>                       new Float(20.00) ) );
>
>     v.addElement( new TestDetails(
>                       new Integer(4), "C","Low Start Term",
>                       new Float(25.00) ) );
>
>     return v.elements();
> }
> ----
>
> TestDetails is an 'attribute' class that implements Serializable.
>
> I have a test client with code as follows:
>
> ----
>     // get context
>
>     System.out.println("Obtaining initial context ...");
>
>     Properties p = new Properties();
>     p.put(Context.INITIAL_CONTEXT_FACTORY,
> "weblogic.jndi.WLInitialContextFactory");
>     InitialContext ctx = new InitialContext(p);
>
>     System.out.println("... SUCCESS.");
>
>     // locate object
>
>     System.out.println("Locating Home ...");
>
>     TestHome home = (TestHome) ctx.lookup("TestHome");
>
>     System.out.println("... SUCCESS.");
>
>     // create an object
>
>     System.out.println("Creating bean ...");
>
>     Test bean = home.create();
>
>     System.out.println("... SUCCESS.");
>
>     // run method
>
>     System.out.println("Running method ...");
>
>     Enumeration results = bean.getResults(new Properties());
>
>     System.out.println("... SUCCESS.");
>
>     // clear up
>
>     bean.remove();
>     ctx.close();
>
> ----
>
> The test fails at the bean.getResults() method with the following error
>
> ----
> java.rmi.RemoteException: ; nested exception is:
>         weblogic.rmi.ServerException: A remote exception occurred while
> executing the method on the remote object
>  - with nested exception:
> [weblogic.rmi.MarshalException: error marshalling return
>  - with nested exception:
> [java.io.IOException: Class java.util.Vector$1 with code=123 does not
> implement Serializable, Externalizable or WLSerializable]]
> java.io.IOException: Class java.util.Vector$1 with code=123 does not
> implement Serializable, Externalizable or WLSerializable
>         at
> weblogic.common.internal.WLObjectOutputStreamBase.writeObjectBody(WLObject
> OutputStreamBase.java:895)
>         at
> weblogic.common.internal.WLObjectOutputStreamBase.writeObject(WLObjectOutp
> utStreamBase.java, Compiled Code)
>         at
> weblogic.common.internal.WLObjectOutputStreamBase.writeObjectWL(WLObjectOu
> tputStreamBase.java, Compiled Code)
>         at
> weblogic.rmi.extensions.AbstractOutputStream2.writeObject(AbstractOutputSt
> ream2.java:82)
>         at TestBeanEOImpl_WLSkel.invoke(TestBeanEOImpl_WLSkel.java:137)
>         at
> weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerObjectA
> dapter.java, Compiled Code)
>         at
> weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicRequestHand
> ler.java:69)
>         at
> weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java
> :15)
>         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java, Compiled
> Code)
> --------------- nested within: ------------------
> weblogic.rmi.MarshalException: error marshalling return
>  - with nested exception:
> [java.io.IOException: Class java.util.Vector$1 with code=123 does not
> implement Serializable, Externalizable or WLSerializable]
>         at TestBeanEOImpl_WLSkel.invoke(TestBeanEOImpl_WLSkel.java:139)
>         at
> weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerObjectA
> dapter.java, Compiled Code)
>         at
> weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicRequestHand
> ler.java:69)
>         at
> weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java
> :15)
>         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java, Compiled
> Code)
> --------------- nested within: ------------------
> weblogic.rmi.ServerException: A remote exception occurred while executing
> the method on the remote object
>  - with nested exception:
> [weblogic.rmi.MarshalException: error marshalling return
>  - with nested exception:
> [java.io.IOException: Class java.util.Vector$1 with code=123 does not
> implement Serializable, Externalizable or WLSerializable]]
>         at weblogic.rmi.extensions.AbstractRequest.sendReceive(Compiled
> Code)
>         at
> TestBeanEOImpl_WLStub.getResults(TestBeanEOImpl_WLStub.java:368)
>         at
> TestBeanEOImpl_ServiceStub.getResults(TestBeanEOImpl_ServiceStub.java:253)
>         at Client.runTest(Client.java:49)
>         at Client.main(Client.java:81)
> Exception in thread "main"
> ----
>
> the environment is WindowsNT4.0, WLS5.1 and Java2.
>
> I'm sure it is something simple and therefore any help would be extremely
> appreciated.
>
> regards
>
> Ed
>
> ==========================================================================
> =
> To unsubscribe, send email to [EMAIL PROTECTED] and include in the
> body
> of the message "signoff EJB-INTEREST".  For general help, send email to
> [EMAIL PROTECTED] and include in the body of the message "help".
>

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to