Wrox Home  
Search P2P Archive for: Go

  Return to Index  

enterprise_java_beans thread: Problems with environment entries...


Message #1 by "Fedro E. Ponce de Leon Luengas" <fedroponce@h...> on Tue, 10 Sep 2002 21:31:15
I am developing an application which has both CMP Entity beans and 
stateless session beans. Both make use of environment-entries where they 
retrieve run-time parameters. 

I am facing the following problem with session beans, whenever the app 
gets deployed all of their environment entries get "erased" from orion-ejb-
jar.xml file: 

As an example, this file in my development directory lists a session bean 
as: 

from ejb-jar.xml: 

<session> 
<description>Session Bean ( Stateless )</description> 
<display-name>sbUsuario</display-name> 
<ejb-name>sbUsuario</ejb-name> 
<home>ph.mesaeventos.mesa.business.sesion.sbUsuarioHome</home> 
<remote>ph.mesaeventos.mesa.business.sesion.sbUsuario</remote> 
<ejb-class>ph.mesaeventos.mesa.business.sesion.impl.sbUsuarioBean</ejb-
class> 
<session-type>Stateless</session-type> 
<transaction-type>Container</transaction-type> 
<env-entry> 
<env-entry-name>prueba</env-entry-name> 
<env-entry-type>java.lang.String</env-entry-type> 
</env-entry> 
</session> 

from orion-ejb-jar.xml: 

<session-deployment name="sbUsuario" location="ejb/sbUsuario"> 
<env-entry-mapping name="prueba">esto es una prueba</env-entry-mapping> 
</session-deployment> 

but after deploying the EAR file using JDev 902 or 903 preview, looking 
for orion-ejb-jar.xml under the app directory of <OC4J-HOME>/application-
deployment directory I found in orion-ejb-jar.xml: 

<session-deployment name="sbUsuario" max-instances="10" 
location="ejb/sbUsuario" 
wrapper="sbUsuarioHome_StatelessSessionHomeWrapper725" persistence-
filename="ejb/sbUsuario" /> 

as you can see, the environment entries have gone away, so my code stop 
working as spected. 

But what really amazes me is that CMP entity beans are deployed correctly: 

ejb-jar.xml: 

<entity> 
<description>Entity Bean ( Container-managed Persistence )</description> 
<display-name>ebUsuario</display-name> 
<ejb-name>ebUsuario</ejb-name> 
<home>ph.mesaeventos.mesa.business.entidad.ebUsuarioHome</home> 
<remote>ph.mesaeventos.mesa.business.entidad.ebUsuario</remote> 
<ejb-class>ph.mesaeventos.mesa.business.entidad.impl.ebUsuarioBean</ejb-
class> 
<persistence-type>Container</persistence-type> 
<prim-key-class>java.lang.Long</prim-key-class> 
<reentrant>False</reentrant> 
<cmp-field> <field-name>id_usuario</field-name> </cmp-field> 
<cmp-field> <field-name>estado</field-name> </cmp-field> 
<cmp-field> <field-name>clave</field-name> </cmp-field> 
<cmp-field> <field-name>contrasenia</field-name> </cmp-field> 
<cmp-field> <field-name>sesion</field-name> </cmp-field> 
<cmp-field> <field-name>persona</field-name> </cmp-field> 
<cmp-field> <field-name>perfil</field-name> </cmp-field> 
<cmp-field> <field-name>ultimo_acceso</field-name> </cmp-field> 
<primkey-field>id_usuario</primkey-field> 
<env-entry> 
<env-entry-name>sequenceName</env-entry-name> 
<env-entry-type>java.lang.String</env-entry-type> 
</env-entry> 
<env-entry> 
<env-entry-name>sequenceNameSesion</env-entry-name> 
<env-entry-type>java.lang.String</env-entry-type> 
</env-entry> 
<resource-ref> 
<description>Data source for PK's sequecence access</description> 
<res-ref-name>jdbc/sequenceDS</res-ref-name> 
<res-type>javax.sql.DataSource</res-type> 
<res-auth>Container</res-auth> 
</resource-ref> 
</entity> 

development orion-ejb-jar.xml: 

<entity-deployment name="ebUsuario" data-source="jdbc/MesaEventosDS" 
location="ejb/ebUsuario" table="USUARIO"> 
<primkey-mapping> 
<cmp-field-mapping> 
<fields> 
<cmp-field-mapping name="id_usuario" persistence-name="ID_USUARIO" 
persistence-type="NUMBER(22)"/> 
</fields> 
</cmp-field-mapping> 
</primkey-mapping> 
<cmp-field-mapping name="id_usuario" persistence-name="ID_USUARIO" 
persistence-type="NUMBER(22)"/> 
<cmp-field-mapping name="estado" persistence-name="ESTADO" persistence-
type="VARCHAR2(1)"/> 
<cmp-field-mapping name="clave" persistence-name="CLAVE" persistence-
type="VARCHAR2(20)"/> 
<cmp-field-mapping name="contrasenia" persistence-name="CONTRASENIA" 
persistence-type="VARCHAR2(20)"/> 
<cmp-field-mapping name="sesion" persistence-name="SESION" persistence-
type="NUMBER(22)"/> 
<cmp-field-mapping name="persona"> 
<entity-ref> 
<cmp-field-mapping name="id_persona" persistence-name="ID_PERSONA" 
persistence-type="NUMBER(22)"/> 
</entity-ref> 
</cmp-field-mapping> 
<cmp-field-mapping name="perfil"> 
<entity-ref> 
<cmp-field-mapping name="id_perfil" persistence-name="ID_PERFIL" 
persistence-type="NUMBER(22)"/> 
</entity-ref> 
</cmp-field-mapping> 
<cmp-field-mapping name="ultimo_acceso" persistence-name="ULTIMO_ACCESO" 
persistence-type="DATE"/> 
<env-entry-mapping name="sequenceName">SEQ_USUARIO</env-entry-mapping> 
<env-entry-mapping name="sequenceNameSesion">SEQ_SESIONID</env-entry-
mapping> 
<resource-ref-mapping name="jdbc/sequenceDS" 
location="jdbc/MesaEventosDS"/> 
<finder-method query="order by CLAVE"> 
<method> 
<ejb-name>ebUsuario</ejb-name> 
<method-name>findAll</method-name> 
</method> 
</finder-method> 
</entity-deployment> 

deployed orion-ejb-jar.xml: 

<entity-deployment name="ebUsuario" max-instances="10" 
location="ejb/ebUsuario" wrapper="ebUsuarioHome_EntityHomeWrapper1103" 
table="USUARIO" data-source="jdbc/MesaEventosDS" exclusive-write-
access="false" locking-mode="optimistic" update-changed-fields-only="true" 
delay-updates-until-commit="true" min-instances-per-pk="0" max-instances-
per-pk="50" disable-wrapper-cache="true"> 
<primkey-mapping> 
<cmp-field-mapping name="id_usuario" persistence-name="id_usuario" /> 
</primkey-mapping> 
<cmp-field-mapping name="estado" persistence-name="ESTADO" persistence-
type="VARCHAR2(1)" /> 
<cmp-field-mapping name="clave" persistence-name="CLAVE" persistence-
type="VARCHAR2(20)" /> 
<cmp-field-mapping name="contrasenia" persistence-name="CONTRASENIA" 
persistence-type="VARCHAR2(20)" /> 
<cmp-field-mapping name="sesion" persistence-name="SESION" persistence-
type="NUMBER(22)" /> 
<cmp-field-mapping name="persona"> 
<entity-ref home="ejb/ebPersona"> 
<cmp-field-mapping name="id_persona" persistence-name="ID_PERSONA" 
persistence-type="NUMBER(22)" /> 
</entity-ref> 
</cmp-field-mapping> 
<cmp-field-mapping name="perfil"> 
<entity-ref home="ejb/ebPerfil"> 
<cmp-field-mapping name="id_perfil" persistence-name="ID_PERFIL" 
persistence-type="NUMBER(22)" /> 
</entity-ref> 
</cmp-field-mapping> 
<cmp-field-mapping name="ultimo_acceso" persistence-name="ULTIMO_ACCESO" 
persistence-type="DATE" /> 
<finder-method query="order by CLAVE"> 
<!-- Generated SQL: "select USUARIO.id_usuario, USUARIO.ESTADO, 
USUARIO.CLAVE, USUARIO.CONTRASENIA, USUARIO.SESION, USUARIO.ID_PERSONA, 
USUARIO.ID_PERFIL, USUARIO.ULTIMO_ACCESO from USUARIO order by CLAVE --> 
<method> 
<ejb-name>ebUsuario</ejb-name> 
<method-name>findAll</method-name> 
</method> 
</finder-method> 
<finder-method query="$clave = $1"> 
<!-- Generated SQL: "select USUARIO.id_usuario, USUARIO.ESTADO, 
USUARIO.CLAVE, USUARIO.CONTRASENIA, USUARIO.SESION, USUARIO.ID_PERSONA, 
USUARIO.ID_PERFIL, USUARIO.ULTIMO_ACCESO from USUARIO where USUARIO.CLAVE 
= ? --> 
<method> 
<ejb-name>ebUsuario</ejb-name> 
<method-name>findByClave</method-name> 
<method-params> 
<method-param>java.lang.String</method-param> 
</method-params> 
</method> 
</finder-method> 
<finder-method query="$sesion = $1"> 
<!-- Generated SQL: "select USUARIO.id_usuario, USUARIO.ESTADO, 
USUARIO.CLAVE, USUARIO.CONTRASENIA, USUARIO.SESION, USUARIO.ID_PERSONA, 
USUARIO.ID_PERFIL, USUARIO.ULTIMO_ACCESO from USUARIO where USUARIO.SESION 
= ? --> 
<method> 
<ejb-name>ebUsuario</ejb-name> 
<method-name>findBySesion</method-name> 
<method-params> 
<method-param>java.lang.Long</method-param> 
</method-params> 
</method> 
</finder-method> 
<finder-method query="$estado = $1"> 
<!-- Generated SQL: "select USUARIO.id_usuario, USUARIO.ESTADO, 
USUARIO.CLAVE, USUARIO.CONTRASENIA, USUARIO.SESION, USUARIO.ID_PERSONA, 
USUARIO.ID_PERFIL, USUARIO.ULTIMO_ACCESO from USUARIO where USUARIO.ESTADO 
= ? --> 
<method> 
<ejb-name>ebUsuario</ejb-name> 
<method-name>findByEstado</method-name> 
<method-params> 
<method-param>java.lang.String</method-param> 
</method-params> 
</method> 
</finder-method> 
<env-entry-mapping name="sequenceName">SEQ_USUARIO</env-entry-mapping> 
<env-entry-mapping name="sequenceNameSesion">SEQ_SESIONID</env-entry-
mapping> 
<resource-ref-mapping name="jdbc/sequenceDS" 
location="jdbc/MesaEventosDS" /> 
</entity-deployment> 

as you can see, their environment entries were preserved in the same file 
where the environment entries for the session bean got lost. 

Is this a bug? What am I doing wrong? What could I do to fix this? 

Thanks, 
Fedro 

  Return to Index