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