Exception in thread "main" java.lang.ClassFormatError: ... NON Maven project

679 views Asked by At
Exception in thread "main" java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/persistence/Persistence
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at com.bt.niab.ejbservice.junit.DBTest.init(DBTest.java:51)
    at com.bt.niab.ejbservice.junit.DBTest.main(DBTest.java:28)

Please help to solve this error. I tried adding and removing few jars that were mentioned in other post but it did not help... While debugging exceptions is thrown at: EntityManagerFactory factory = Persistence.createEntityManagerFactory("testdb");

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="testDB" transaction-type="RESOURCE_LOCAL">
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <!--  <jta-data-source>com.bt.niab.jdbc.datasource.niabdl</jta-data-source> -->
            <class> (Cannot mention here) </class>

            <properties>
                <property name="javax.persistence.jdbc.url" value="db_url (Cannot mention here)" />
                <property name="javax.persistence.jdbc.user" value="user" />
                <property name="javax.persistence.jdbc.password" value="pass" />
                <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.driver.OracleDriver" /> 

                <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
                <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WeblogicTransactionManagerLookup" />
                <property name="hibernate.show_sql" value="true" />
                <property name="hibernate.format_sql" value="true" />
                <property name="hibernate.query.factory_class" value="org.hibernate.hql.classic.ClassicQueryTranslatorFactory" /> 
            </properties>
        </persistence-unit>
    </persistence>

DBTest.java

package com.bt.niab.ejbservice.junit;    
import java.util.ArrayList;    
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.Query;

public class DBTest {   

    EntityManagerFactory factory; 
    EntityManager manager;  
    EntityTransaction tx;       

    public static void main(String[] args)
    {
        DBTest obj = new DBTest();

        try
        {       
            obj.init();
            obj.search();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            obj.shutdown();
        }           
    }

    private void shutdown()
    {    
        System.out.println("Inside Shutdown method");
        manager.close();      
        factory.close();
    }

    public void init()
    {
        System.out.println("Inside init method");
        factory = Persistence.createEntityManagerFactory("IonixDLUnit"); 
        manager = factory.createEntityManager();
        System.out.println("After init method");        
    }

    private void search() 
    { 
        System.out.println("Inside Search method");
        ArrayList<DBTest> arrayList = new ArrayList<DBTest>();
        tx = manager.getTransaction();
        tx.begin();
        Query query = manager.createQuery("SELECT *  FROM address");
        if(query != null)
        {
            arrayList = (ArrayList<DBTest>) query.getResultList();
            for(DBTest p : arrayList) 
            {         
                System.out.println(p);  
            }
        }
        tx.commit();
    }
}

Folder Structure

JavaProject
   |---src
     |--- package
            |--- DBTest.java
     |--- package
     |--- META-INF
              |--- MANIFEST.MF
              |--- persistence.xml
              |--- jndi.properties
0

There are 0 answers