Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Nullpointer Exception trying to execute eclipselink-2.0.0

Hello,

This error is odd because it is complaining that it cannot load *javax/resource/ResourceException*, implying your classpath is incomplete. This error occurs when trying to load the driver class to login, so chance are your driver jar is incomplete or has external dependencies that are not available causing this exception. I am not familar with the org.firebirdsql.jdbc.FBDriver, so you might want to try a different driver/database combination and see if that works with the application.
Best Regards,
Chris

Arcangel wrote:
Hello.

I'm having some troubles when I tried to use eclipselink-2.0.0 with eclipse
WTP.

Eclipselink is sending to me this exception:

Exception in thread "main" java.lang.NoClassDefFoundError:
javax/resource/ResourceException
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:247)
	at
org.eclipse.persistence.internal.security.PrivilegedAccessHelper.getClassForName(PrivilegedAccessHelper.java:88)
	at
org.eclipse.persistence.sessions.DefaultConnector.loadDriverClass(DefaultConnector.java:253)
	at
org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:85)
	at
org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
	at
org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:584)
	at
org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:228)
	at
org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:368)
	at
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:151)
	at
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:207)
	at
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:195)
	at Persona.guardar(Persona.java:63)
	at Persona.main(Persona.java:89)
Caused by: java.lang.ClassNotFoundException:
javax.resource.ResourceException
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

I create a simple JPA project and add these jars to the build path:
eclipselink-2.0.0.jar
javax.persistence-2.0.0.jar
jaybird-2.1.6jdk16.jar

My persistence.xml is this:

<?xml version="1.0" encoding="UTF-8" ?>
<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_2_0.xsd";
        version="2.0" xmlns="http://java.sun.com/xml/ns/persistence";>
	<persistence-unit name="prueba_eclipselink"
transaction-type="RESOURCE_LOCAL">
	<class>Persona</class>
	<properties>
			<property name="javax.persistence.jdbc.driver"
value="org.firebirdsql.jdbc.FBDriver" />
			<property name="javax.persistence.jdbc.url"
				value="jdbc:firebirdsql:localhost/3050:/var/dbs/prueba_firebird.fdb" />
			<property name="javax.persistence.jdbc.user" value="sysdba" />
			<property name="javax.persistence.jdbc.password" value="masterkey" />
			<property name="eclipselink.ddl-generation" value="create-tables" />
			<property name="eclipselink.logging.level" value="ALL" />
		</properties>
	</persistence-unit>
</persistence>

My test class is this:

import java.io.Serializable;
import java.lang.String;
import javax.persistence.*;

/**
 * Entity implementation class for Entity: Persona
 *
 */
@Entity
public class Persona implements Serializable {

	@Id
	@GeneratedValue
	private int id;
	private String nombre;
	private String direccion;
	private static final long serialVersionUID = 1L;
	@Transient
	protected EntityManager em;
	@Transient
	protected static final String PERSISTENCE_UNIT_NAME = "prueba_eclipselink";
	@Transient
	protected static EntityManagerFactory factory = Persistence
	.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);


	public Persona() {
		super();
} public int getId() {
		return this.id;
	}

	public void setId(int id) {
		this.id = id;
} public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
} public String getDireccion() {
		return this.direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public Persona(int id, String nombre, String direccion) {
		super();
		this.id = id;
		this.nombre = nombre;
		this.direccion = direccion;
	}
	public boolean guardar(){
		boolean res = false;
		try {
			em = factory.createEntityManager();
			em.getTransaction().begin();
			if (id == 0) {
				em.persist(this);
			}
			else {
				em.merge(this);
			}
			em.getTransaction().commit();
			res = true;
		}
		catch (Exception e) {
			e.printStackTrace();
			res = false;
		}
		finally{
			if(em !=null){
				em.close();
			}
		}
		return res;
	}
        public static void main(String[] args) {
		Persona persona = new Persona();
		persona.setNombre("jose");
		persona.setDireccion("rio gambia");
		assertTrue(persona.guardar());
	}
}



Back to the top