EJB (Enterprise Java Beans) - EJB3 y TopLink

 
Vista:

EJB3 y TopLink

Publicado por Pablo Pereyra (1 intervención) el 21/09/2009 17:00:38
Hola comunidad en esta oportunidad me acerco para realizar consultas de desarrollo en Java EE EJB3 con Toplink.

El tema es el siguiente:
Estoy trabajando con EJB3 desde hace poco y quiero correr unos test con TopLink en el cual persisto con JPA unas entidades hacia la base de datos Oracle 10g.

El problema es que no me esta tomando la propiedad :

?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="pricing-unit"
transaction-type="JTA">
<jta-data-source>jdbc/oracleDatabase</jta-data-source>

<properties>
<property name="toplink.ddl-generation" value="drop-and-create-tables"/>
</properties>

</persistence-unit>
</persistence>

Osea no me esta creando las tablas... desde mis test configuro el DataSource:
Properties p = new Properties();
p.put("java.naming.factory.initial",
"org.apache.openejb.client.LocalInitialContextFact ory");
p.put("java.naming.provider.url", "ejbd://127.0.0.1:4201");
p.put("jdbc/oracleDatabase", "new://Resource?type=DataSource");
p.put("jdbc/oracleDatabase.JdbcDriver",
"oracle.jdbc.driver.OracleDriver");
p.put("jdbc/oracleDatabase.JdbcUrl",
"jdbc:oracle:thin:@20.1.1.19:1521:xe");
p.put("jdbc/oracleDatabase.Username", "ejb");
p.put("jdbc/oracleDatabase.Password", "hasar123");
p.put("openejb.deployments.classpath.include", "\\\\geo-api\\bin\\*");
p.put("openejb.deployments.classpath.exclude", "");
initialContext = new InitialContext(p);

Pero no me cera las tablas como asi tampoco la tabla Sequence que utiliza el motor para generar las claves de las tabas de manera automatica.

Probe con JPA solo y si funciona contra la misma Base de datos y mismo usuario!
El problema lo tengo con EJB3 y JPA.

Espero puedan ayudarme.
Muchas Gracias!.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:EJB3 y TopLink

Publicado por Gustavo Guanilo (3 intervenciones) el 27/02/2010 02:59:37
Hola Pablo.
creo que deberias apoyarte en el ide Jdeveloper para generar tus entities
este automaticamente te mapea el persistence.xml y luego generar tu SessionBean
indicandole tu unidad de persistencia y el mismo ide te crea los metodos basicos para realizar un mantenimiento.
No te recomiendo que le pases el properties a tu contexto ya que esas mismas properties las puedes inyectar desde el persistence.xml,ejemplo

<properties>
<property name="toplink.jdbc.driver" value="oracle.jdbc.OracleDriver"/>
......
</properties>

solamente pasale properties al contexto cuando se ejecute el cliente que consume el EJB

Context context = new InitialContext();
DemoEJBService demoEJBService =(DemoEJBService)context.lookup("DemoEJBService");

esto lo puedes revisar a mas detalle en la specificacion de EJB 3.0

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar