Hello everyone. 

I'm using Lomboz for a few time, and I can't get through this problem. I am 
sure that some people know how to solve it but I didn't manage to find a 
solution on the net. 

I'm using Eclipse 3.0.1, Lomboz 3.0.1 and JBoss 3.2.1 

The problem I encounter is that when I create an EJB that contains a method 
that returns a complex type (i.e : a Collection), the method just doesn't 
work... 
I am using a TestClient created thanks to one of Lomboz's wizards. 

In the TestClient, I only write : 

System.out.println("Before"); 
  | Collection test = myBean.getListeVentes() 
  | System.out.println("After"); 


And when I run the TestClient, "Before" is written, but "After" isn't. 

Moreover, the EJB method I wrote seems to work since I made some 
System.out.println(...) that appears. 
I made several tests and it appears that when the method return nothing or a 
simple type (int or String) it works peferctly. 

Here is the code of my class that stands for the business part of my EJB : 

  | package serviceCommercial; 
  | 
  | import java.sql.ResultSet; 
  | import java.util.Collection; 
  | import java.util.HashSet; 
  | 
  | import javax.ejb.SessionBean; 
  | 
  | import odbc.ODBCConnect; 
  | 
  | /** 
  | * 
  | * <!-- begin-user-doc --> A generated session bean <!-- end-user-doc --> * 
  | <!-- lomboz.beginDefinition --> 
  | <?xml version="1.0" encoding="UTF-8"?> 
  | <lomboz:EJB xmlns:j2ee="http://java.sun.com/xml/ns/j2ee";; 
xmlns:lomboz="http://lomboz.objectlearn.com/xml/lomboz";;> 
  | <lomboz:session> 
  | <lomboz:sessionEjb> 
  | <j2ee:display-name>Lister</j2ee:display-name> 
  | <j2ee:ejb-name>Lister</j2ee:ejb-name> 
  | <j2ee:ejb-class>serviceCommercial.ListerBean</j2ee:ejb-class> 
  | <j2ee:session-type>Stateless</j2ee:session-type> 
  | <j2ee:transaction-type>Container</j2ee:transaction-type> 
  | </lomboz:sessionEjb> 
  | </lomboz:session> 
  | </lomboz:EJB> 
  | <!-- lomboz.endDefinition --> 
  | * 
  | * <!-- begin-xdoclet-definition --> 
  | * @ejb.bean name="Lister" 
  | * jndi-name="Lister" 
  | * type="Stateless" 
  | * transaction-type="Container" 
  | * 
  | *-- 
  | * This is needed for JOnAS. 
  | * If you are not using JOnAS you can safely remove the tags below. 
  | * @jonas.bean ejb-name="Lister" 
  | * jndi-name="Lister" 
  | * 
  | *-- 
  | * <!-- end-xdoclet-definition --> 
  | * @generated 
  | */ 
  | public abstract class ListerBean implements SessionBean { 
  | 
  | /** 
  | * @ejb.interface-method 
  | * view-type="remote" 
  | **/ 
  | public Collection getListe(){ 
  | 
  | Collection listeVentes = new HashSet(); 
  | 
  | //create a connection to the DB 
  | odbc.ODBCConnect baseServiceComm = new ODBCConnect(); 
  | baseServiceComm.connectage("ServiceCommercial"); 
  | System.out.println("avant GS"); 
  | baseServiceComm.getStatement(); 
  | ResultSet res = baseServiceComm.ExecuteQ("SELECT * FROM VENTES"); 
  | try 
  | { 
  | System.out.println("avant while"); 
  | while (res.next()) 
  | { 
  | System.out.println("while"); 
  | VenteBean uneVente = new VenteBean(); 
  | uneVente.setNVendeur(res.getInt(1)); 
  | uneVente.setTrimestre(res.getInt(2)); 
  | uneVente.setAnnee(res.getInt(3)); 
  | uneVente.setCAHT(res.getInt(4)); 
  | 
  | listeVentes.add(uneVente); 
  | } 
  | System.out.println("après boucle"); 
  | System.out.println("taille = " + listeVentes.size()); 
  | } 
  | catch (Exception e) 
  | { 
  | System.out.println("Erreur"); 
  | } 
  | baseServiceComm.fermeture(); 
  | 
  | return listeVentes; 
  | } 
  | 
  | }

I really don't see what can be wrong... 
The error I get is : 


  | java.lang.reflect.UndeclaredThrowableException 
  | at $Proxy1.getVenteBean(Unknown Source) 
  | at serviceCommercial.Test14.testBean(Test14.java:55) 
  | at serviceCommercial.Test14.main(Test14.java:68) 
  | Caused by: java.io.NotSerializableException: serviceCommercial.VenteBean 
  | at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054) 
  | at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278) 
  | at java.rmi.MarshalledObject.<init>(MarshalledObject.java:92) 
  | at 
org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:363) 
  | at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source) 
  | at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 
  | at java.lang.reflect.Method.invoke(Method.java:324) 
  | at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) 
  | at sun.rmi.transport.Transport$1.run(Transport.java:148) 
  | at java.security.AccessController.doPrivileged(Native Method) 
  | at sun.rmi.transport.Transport.serviceCall(Transport.java:144) 
  | 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:536) 
  | 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:133) 
  | at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown Source) 
  | at 
org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProxy.java:135)
 
  | at 
org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:87) 
  | at 
org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46) 
  | at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:45) 
  | at 
org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:100)
 
  | at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85) 
  | ... 3 more 
  | Exception in thread "main" 
  |  

Last thing, here is the code of the class "VenteBean.java" I use in my EJB

/* 
  | * Created on 2 juin 2005 
  | * 
  | * TODO To change the template for this generated file go to 
  | * Window - Preferences - Java - Code Style - Code Templates 
  | */ 
  | package serviceCommercial; 
  | 
  | import java.io.Serializable; 
  | 
  | /** 
  | * @author Administrateur 
  | * 
  | * TODO To change the template for this generated type comment go to 
  | * Window - Preferences - Java - Code Style - Code Templates 
  | */ 
  | public class VenteBean implements Serializable{ 
  | 
  | private int nVendeur; 
  | private int trimestre; 
  | private int annee; 
  | private int CAHT; 
  | 
  | public VenteBean() 
  | { 
  | super(); 
  | } 
  | 
  | public void setNVendeur(int _vendeur) 
  | { 
  | nVendeur = _vendeur; 
  | } 
  | 
  | public void setTrimestre(int _trimestre) 
  | { 
  | trimestre = _trimestre; 
  | } 
  | 
  | public void setAnnee(int _annee) 
  | { 
  | annee = _annee; 
  | } 
  | 
  | public void setCAHT(int _CAHT) 
  | { 
  | CAHT = _CAHT; 
  | } 
  | 
  | public int getNVendeur() 
  | { 
  | return nVendeur; 
  | } 
  | 
  | public int getTrimestre() 
  | { 
  | return trimestre; 
  | } 
  | 
  | public int getAnnee() 
  | { 
  | return annee; 
  | } 
  | 
  | public int getCAHT() 
  | { 
  | return CAHT; 
  | } 
  | 
  | }

Does anybody know how to slove this problem? 
Thanks for helping.

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3883041#3883041

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3883041


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=click
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to