persistence@glassfish.java.net

WARNING: "IOP00810257: (MARSHAL) Could not load class mypackage.MyClass"

From: miro-zet <mr_at_zoznam.sk>
Date: Tue, 17 Mar 2009 01:37:01 -0700 (PDT)

Hi,

i am developing a simple j2ee application that consists of one EJB jar and
one web application war archive. For some reasons i cannot put them in one
EAR application.
EJB contains some persistent entities and stateless beans. To be more
specific, i put here some code:

@Entity
public class Product implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

private String name;

private String description;

private String enduserType;

private String licenseType;

private String productType;

private long price;

@ManyToMany(mappedBy = "productList")
private List<Order> orderList;

... some getters and setters
}

@Entity
public class Order implements Serializable {


private static final long serialVersionUID = 877211619374038853L;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

@Temporal(TemporalType.DATE)
private Date date;

@OneToOne
private EndUser endUser;

private long userId;

private long dealerId;


@ManyToMany
@JoinTable(name = "order_product", joinColumns = @JoinColumn(name =
"order_id", referencedColumnName = "ID"), inverseJoinColumns =
@JoinColumn(name = "product_id", referencedColumnName = "ID"))
private List<Product> productList;

...some getters and setters

}

EJB also contains method how to persist these entities:

@Stateless(name = "orderDAO", mappedName = "orderDAO")
public class OrderDAOImpl implements OrderLocal, OrderRemote {

@PersistenceContext(name = "lportal")
private EntityManager em;

public void createOrder(Order order) {
em.merge(order);
}

...some other methods

}

I can deploy EJB and webapplication withou any problems.

Since EJB and web application arent in the same entreprise (EAR)
application, i put the EJB jar file alse into the web application
WEB-INF/lib directory. Everything works fine - I can persist, merge, find
everything - apart from one case.

The problem happens when I try to persist Order entity which contain List od
products (ManyToMany relation). When the List is empty everything works. Let
me again put here some code. Web application contains this class for the
access to the EJB:

public class DbUtils {

private OrderRemote orderDAO;

private ProductRemote productDAO;

public DbUtils() {
try {
InitialContext ic = new InitialContext();
orderDAO = (OrderRemote) ic.lookup("orderDAO");
productDAO = (ProductRemote) ic.lookup("productDAO");
} catch (Exception e) {
e.printStackTrace();
}
}

public void createOrder(){
Order o = new Order();

o.getProductList().add(productDAO.findProduct(Long.valueOf(10)));
o.getProductList().add(productDAO.findProduct(Long.valueOf(20)));
o.setDate(new Date());
o.setDealerId(2);
o.setUserId(3);

orderDAO.createOrder(o);
}

}

when the list is empty, everything works, but when the list contains some
elements i get following error:

WARNING: "IOP00810257: (MARSHAL) Could not load class
sk.kedros.osol.ejb.model.Product"
org.omg.CORBA.MARSHAL: vmcid: SUN minor code: 257 completed: Maybe
at
com.sun.corba.ee.impl.logging.ORBUtilSystemException.couldNotFindClass(ORBUtilSystemException.java:9679)
at
com.sun.corba.ee.impl.logging.ORBUtilSystemException.couldNotFindClass(ORBUtilSystemException.java:9694)
at
com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1042)
at
com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:896)
at
com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:890)
at
com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:880)
at
com.sun.corba.ee.impl.encoding.CDRInputStream.read_abstract_interface(CDRInputStream.java:511)
at
com.sun.corba.ee.impl.io.IIOPInputStream.readObjectDelegate(IIOPInputStream.java:386)
at
com.sun.corba.ee.impl.io.IIOPInputStream.readObjectOverride(IIOPInputStream.java:547)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:345)
at java.util.ArrayList.readObject(ArrayList.java:593)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.sun.corba.ee.impl.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1688)
at
com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1211)
at
com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:422)
at
com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:362)
at
com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:328)
at
com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
at
com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
at
com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
at
com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1983)
at
com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2208)
at
com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1220)
at
com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:422)
at
com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:362)
at
com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:328)
at
com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
at
com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
at
com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
at
com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl$14.read(DynamicMethodMarshallerImpl.java:368)
at
com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl.readArguments(DynamicMethodMarshallerImpl.java:435)
at
com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:152)
at
com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
at
com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
at
com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
at
com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
at
com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
at
com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
at
com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
at
com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
at
sk.kedros.osol.ejb.dao.__OrderRemote_Remote_DynamicStub.createOrder(sk/kedros/osol/ejb/dao/__OrderRemote_Remote_DynamicStub.java)
at
sk.kedros.osol.ejb.dao._OrderRemote_Wrapper.createOrder(sk/kedros/osol/ejb/dao/_OrderRemote_Wrapper.java)
at sk.kedros.ejbtest.util.DbUtils.createOrder(DbUtils.java:36)
at org.apache.jsp.index_jsp._jspService(index_jsp.java from :48)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBa

...stackstrace continues further...

Can somebody explain me what i am doing wrong?
I would like to repeat, that everything is working fine, when both EJB and
webapplication are in the same EAR application, but i cannot do this in my
project.

Thanks in advance,
Marian
-- 
View this message in context: http://www.nabble.com/WARNING%3A-%22IOP00810257%3A-%28MARSHAL%29-Could-not-load-class-mypackage.MyClass%22-tp22554576p22554576.html
Sent from the java.net - glassfish persistence mailing list archive at Nabble.com.