Witam, eobie projekt z wykorzystaniem EJB 3.0 w Eclipse...Oto czesc kodu klienta wywoluacego metode:
public static void main(String[] args) {
try
{
Properties p1 = new Properties();
p1.put("org.omg.CORBA.ORBInitialHost", "localhost");
p1.put("org.omg.CORBA.ORBInitialPort", "3700");
InitialContext ic = new InitialContext(p1);
ZiarnoRemote dao = (ZiarnoRemote) ic.lookup("Ziarno");
System.out.println("1");
Wydzial wydzial=new Wydzial();
System.out.println("2");
wydzial.setIdWydzialu(4);
System.out.println("3");
wydzial.setNazwa("Wydzial Flashu");
dao.dodaj_wydzial(wydzial);
System.out.println("4");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
A tu kod Ziarna:
@Stateless(mappedName = "Ziarno")
@TransactionManagement(TransactionManagementType.BEAN)
public class Ziarno implements ZiarnoRemote {
@PersistenceContext(unitName="Ankieta")
private EntityManager en;
public Ziarno() {
}
public String metoda() {
try
{
String toReturn = en.find(Wykladowca.class, new Long(1)).getNazwiskoWykl();
return toReturn;
}
catch (Exception e)
{
e.printStackTrace();
return "nieOk";
}
}
@SuppressWarnings("unchecked")
public void dodaj_wydzial(Wydzial wydzial)
{
System.out.println("w metodzie");
en.persist(wydzial);
}
}
A tu błąd jaki mi wyskakuje:
1
2
3
javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.RemoteException: null; nested exception is:
javax.persistence.TransactionRequiredException
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.RemoteException: null; nested exception is:
javax.persistence.TransactionRequiredException
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:243)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205)
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 session.__ZiarnoRemote_Remote_DynamicStub.dodaj_wydzial(session/__ZiarnoRemote_Remote_DynamicStub.java)
at session._ZiarnoRemote_Wrapper.dodaj_wydzial(session/_ZiarnoRemote_Wrapper.java)
at client.Klient.main(Klient.java:33)
Caused by: java.rmi.RemoteException: null; nested exception is:
javax.persistence.TransactionRequiredException
at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:251)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1411)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
at $Proxy48.dodaj_wydzial(Unknown Source)
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.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
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.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.persistence.TransactionRequiredException
at com.sun.enterprise.util.EntityManagerWrapper.doTxRequiredCheck(EntityManagerWrapper.java:236)
at com.sun.enterprise.util.EntityManagerWrapper.doTransactionScopedTxCheck(EntityManagerWrapper.java:200)
at com.sun.enterprise.util.EntityManagerWrapper.persist(EntityManagerWrapper.java:426)
at session.Ziarno.dodaj_wydzial(Ziarno.java:87)
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.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011)
at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175)
at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2920)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4011)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
... 17 more
javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.RemoteException: null; nested exception is:
javax.persistence.TransactionRequiredException
at session._ZiarnoRemote_Wrapper.dodaj_wydzial(session/_ZiarnoRemote_Wrapper.java)
at client.Klient.main(Klient.java:33)
Za Chiny nie moge rozkminic gdzie jest blad...POMOCY!