Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] NoClassDefFoundError: javax/transaction/Synchronization

I had a similar issue with terget-server set to JBoss, so I just
dropped that property, keeping transaction-type="JTA", setting a
session customizer (to make it work with JNDI lookup), and setting
<jta-data-source> to something like this: java:myds (with a *-ds.xml
visible to JBoss).

Mohsen.

On Tue, Sep 23, 2008 at 10:49 AM, Miroslav Kubíček
<miroslav.kubicek@xxxxxxxxx> wrote:
> I put my eclipselink.jar (and javaee.jar) almost everywhere... I also do
> have it in my $GLASSFISH_HOME/lib dir.
>
> I'll be glad for any ideas...
>
> Options that have left are of an experimental nature - to reinstall the
> server / try new build of eclipselink etc... But I dont think it is likely
> to solve this.
>
> Thanks,
> rgds
> Miroslav
>
>
> On 9/23/08, Mitesh Meswani <Mitesh.Meswani@xxxxxxx> wrote:
>>
>> It seems the classloader that loads EclipseLink classes is not able to
>> access javax/transaction/Synchronization. Which is strange. Where are you
>> putting eclipselink.jar? Can you try putting in $GLASSFISH_HOME/lib dir.
>>
>> Regards,
>> Mitesh
>>
>> Miroslav Kubíc(ek wrote:
>>>
>>> I have javaee.jar in my classpath (both client and ejb module) and when I
>>> swich to TopLink (just change persistence.xml) the error does not occur.
>>> Therefore I am trying to find out whether it is some silly problem with my
>>> classpath or some eclipselink issue.
>>> For testing ejb layer I have simple client using JUnit.
>>>
>>> Furthermore, eclipselink first worked, but container managed transactions
>>> were not (but I was able to retrieve data and to manualy manage
>>> transactions).
>>> Then I added <property name="eclipselink.target-server" value="SunAS9"/>
>>> to persistence.xml. Then this error occured.
>>>
>>> source code is below,
>>> stack trace is here:
>>>
>>> compile:
>>> compile-test-single:
>>> Testsuite: clinttest.junit.TestEJB
>>> java.rmi.RemoteException: null; nested exception is:
>>> java.lang.NoClassDefFoundError: javax/transaction/Synchronization)
>>> Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 4,42 sec
>>>
>>> Testcase: testEJBUpdate(clinttest.junit.TestEJB): Caused an ERROR
>>> nested exception is: java.rmi.ServerException: RemoteException occurred
>>> in server thread; nested exception is:
>>> java.rmi.RemoteException: null; nested exception is:
>>> java.lang.NoClassDefFoundError: javax/transaction/Synchronization
>>> javax.ejb.EJBException: nested exception is: java.rmi.ServerException:
>>> RemoteException occurred in server thread; nested exception is:
>>> java.rmi.RemoteException: null; nested exception is:
>>> java.lang.NoClassDefFoundError: javax/transaction/Synchronization
>>> java.rmi.ServerException: RemoteException occurred in server thread;
>>> nested exception is:
>>> java.rmi.RemoteException: null; nested exception is:
>>> java.lang.NoClassDefFoundError: javax/transaction/Synchronization
>>> 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
>>> org.testejb.toplink.__CompaniesFacadeRemote_Remote_DynamicStub.find(org/testejb/toplink/__CompaniesFacadeRemote_Remote_DynamicStub.java)
>>> at
>>> org.testejb.toplink._CompaniesFacadeRemote_Wrapper.find(org/testejb/toplink/_CompaniesFacadeRemote_Wrapper.java)
>>> at clinttest.junit.TestEJB.setUp(TestEJB.java:37)
>>> Caused by: java.rmi.RemoteException: null; nested exception is:
>>> java.lang.NoClassDefFoundError: javax/transaction/Synchronization
>>> at
>>> com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:251)
>>> at
>>> com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
>>> 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 $Proxy54.find(Unknown Source)
>>> 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: java.lang.NoClassDefFoundError:
>>> javax/transaction/Synchronization
>>> at java.lang.ClassLoader.defineClass1(Native Method)
>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
>>> at
>>> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
>>> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
>>> at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>>> at java.security.AccessController.doPrivileged(Native Method)
>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>>> at
>>> org.eclipse.persistence.transaction.JTATransactionController.<init>(JTATransactionController.java:60)
>>> at
>>> org.eclipse.persistence.transaction.sunas.SunAS9TransactionController.<init>(SunAS9TransactionController.java:36)
>>> at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
>>> at java.lang.Class.newInstance0(Class.java:350)
>>> at java.lang.Class.newInstance(Class.java:303)
>>> at
>>> org.eclipse.persistence.internal.security.PrivilegedAccessHelper.newInstanceFromClass(PrivilegedAccessHelper.java:331)
>>> at
>>> org.eclipse.persistence.platform.server.ServerPlatformBase.initializeExternalTransactionController(ServerPlatformBase.java:241)
>>> at
>>> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.preConnectDatasource(DatabaseSessionImpl.java:628)
>>> at
>>> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:567)
>>> at
>>> org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:209)
>>> at
>>> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:246)
>>> at
>>> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:69)
>>> at
>>> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:118)
>>> at
>>> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:108)
>>> at
>>> com.sun.enterprise.util.EntityManagerWrapper._getDelegate(EntityManagerWrapper.java:326)
>>> at
>>> com.sun.enterprise.util.EntityManagerWrapper.find(EntityManagerWrapper.java:546)
>>> at org.testejb.toplink.CompaniesFacade.find(CompaniesFacade.java:35)
>>> at
>>> com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
>>> at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
>>> at
>>> com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
>>> at
>>> com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
>>> at
>>> com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
>>> javax.ejb.EJBException: nested exception is: java.rmi.ServerException:
>>> RemoteException occurred in server thread; nested exception is:
>>> java.rmi.RemoteException: null; nested exception is:
>>> java.lang.NoClassDefFoundError: javax/transaction/Synchronization
>>> at
>>> org.testejb.toplink._CompaniesFacadeRemote_Wrapper.find(org/testejb/toplink/_CompaniesFacadeRemote_Wrapper.java)
>>> at clinttest.junit.TestEJB.setUp(TestEJB.java:37)
>>>
>>>
>>> Test clinttest.junit.TestEJB FAILED
>>>
>>> ----------------------------------------
>>> ----- session facade file is here:
>>> ----------------------------------------
>>>
>>> package org.testejb.toplink;
>>>
>>> import java.util.List;
>>> import javax.ejb.Stateless;
>>> import javax.persistence.EntityManager;
>>> import javax.persistence.PersistenceContext;
>>>
>>> @Stateless
>>> public class CompaniesFacade implements CompaniesFacadeRemote {
>>> @PersistenceContext
>>> private EntityManager em;
>>>
>>> public void create(Companies companies) {
>>> em.persist(companies);
>>> }
>>>
>>> public void edit(Companies companies) {
>>> em.merge(companies);
>>> }
>>>
>>> public void remove(Companies companies) {
>>> em.remove(em.merge(companies));
>>> }
>>>
>>> public Companies find(Object id) {
>>> return em.find(org.testejb.toplink.Companies.class, id);
>>> }
>>>
>>> public List<Companies> findAll() {
>>> return em.createQuery("select object(o) from Companies as
>>> o").getResultList();
>>> }
>>>
>>> }
>>>
>>> --------------------------------------
>>> ---------------------junit test file:
>>> --------------------------------------
>>>
>>> package clinttest.junit;
>>>
>>> import org.junit.After;
>>> import org.junit.AfterClass;
>>> import org.junit.Before;
>>> import org.junit.BeforeClass;
>>> import org.junit.Test;
>>> import javax.naming.InitialContext;
>>> import junit.framework.TestCase;
>>> import org.junit.Assert;
>>> import org.testejb.toplink.Companies;
>>> import org.testejb.toplink.CompaniesFacadeRemote;
>>>
>>> /**
>>> *
>>> * @author kubicekm
>>> */
>>> public class TestEJB extends TestCase{
>>> private CompaniesFacadeRemote compFacade;
>>> private Companies c46;
>>>
>>> public TestEJB() {
>>> }
>>>
>>> @BeforeClass
>>> public static void setUpClass() throws Exception {
>>> }
>>>
>>> @AfterClass
>>> public static void tearDownClass() throws Exception {
>>> }
>>>
>>> @Before
>>> public void setUp() throws Exception{
>>> InitialContext ctx = new InitialContext();
>>> compFacade = (CompaniesFacadeRemote)
>>> ctx.lookup("org.testejb.toplink.CompaniesFacadeRemote");
>>> c46 = compFacade.find(46);
>>> }
>>>
>>> @After
>>> public void tearDown() {
>>> }
>>>
>>> @Test
>>> public void testEJBUpdate (){
>>> String oldNotes = c46.getNotes();
>>> c46.setNotes(oldNotes.concat(" edited"));
>>> compFacade.edit(c46);
>>> Companies c46edited = compFacade.find(46);
>>> Assert.assertTrue(!oldNotes.equals(c46edited.getNotes()));
>>> Assert.assertEquals(c46, c46edited); //should still equal, ids equal
>>> }
>>> }
>>>
>>>
>>>
>>> On Mon, Sep 22, 2008 at 3:42 PM, James Sutherland <jamesssss@xxxxxxxxx
>>> <mailto:jamesssss@xxxxxxxxx>> wrote:
>>>
>>>
>>>    Ensure you have the JTA or JavaEE jar on your classpath, including
>>>    your
>>>    client classpath.
>>>
>>>    Also ensure it is visible to EclipseLink, where did you put the
>>>    eclipselink.jar in your server? Is the error raised from
>>>    EclipseLink or
>>>    somewhere else, include the full stack and enable logging in
>>>    EclipseLink to
>>>    see the error on the server side.
>>>
>>>
>>>
>>>    miroslav. wrote:
>>>    >
>>>    > Hello,
>>>    >
>>>    > please could anyone help me - I am receiving this error:
>>>    >
>>>    > java.rmi.RemoteException: null; nested exception is:
>>>    > java.lang.NoClassDefFoundError: javax/transaction/Synchronization
>>>    >
>>>    > I'm using glassfish 2u2, eclipselink, Oracle db and NetBeans 6.1
>>>    as IDE.
>>>    > I've got a simple application: an entity and a stateless session
>>>    facade.
>>>    > It does work when using default TopLink, but when I swich to
>>>    Eclipselink,
>>>    > container managed transactions stop working and I get this
>>>    error. The
>>>    > error is fired when I invoke first EntityManager.find method.
>>>    >
>>>    > my persistence.xml:
>>>    >
>>>    > <?xml version="1.0" encoding="UTF-8"?>
>>>    > <persistence version="1.0"
>>>    xmlns="http://java.sun.com/xml/ns/persistence";
>>>    > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>>    > xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
>>>    > http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd";>
>>>    > <persistence-unit name="TestEJB_TLPU" transaction-type="JTA">
>>>    > <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
>>>    > <jta-data-source>hpd</jta-data-source>
>>>    > <properties>
>>>    > <property name="eclipselink.target-server" value="SunAS9"/>
>>>    > </properties>
>>>    > </persistence-unit>
>>>    > </persistence>
>>>    >
>>>    > Thanks very much in advance
>>>    > Rgds
>>>    > Miroslav
>>>    >
>>>    >
>>>
>>>
>>>    -----
>>>    ---
>>>    http://wiki.eclipse.org/User:James.sutherland.oracle.com James
>>>    Sutherland
>>>    http://www.eclipse.org/eclipselink/
>>>    EclipseLink , http://www.oracle.com/technology/products/ias/toplink/
>>>    TopLink
>>>    Wiki: http://wiki.eclipse.org/EclipseLink EclipseLink ,
>>>    http://wiki.oracle.com/page/TopLink TopLink
>>>    Forums: http://forums.oracle.com/forums/forum.jspa?forumID=48
>>>    TopLink ,
>>>    http://www.nabble.com/EclipseLink-f26430.html EclipseLink
>>>    Book: http://en.wikibooks.org/wiki/Java_Persistence Java Persistence
>>>    --
>>>    View this message in context:
>>>
>>>  http://www.nabble.com/NoClassDefFoundError%3A-javax-transaction-Synchronization-tp19604774p19608204.html
>>>    Sent from the EclipseLink - Users mailing list archive at Nabble.com.
>>>
>>>    _______________________________________________
>>>    eclipselink-users mailing list
>>>    eclipselink-users@xxxxxxxxxxx <mailto:eclipselink-users@xxxxxxxxxxx>
>>>    https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> eclipselink-users mailing list
>>> eclipselink-users@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>
>>
>> _______________________________________________
>> eclipselink-users mailing list
>> eclipselink-users@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>
>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>
>

Back to the top