|
 |
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
|
|
 |