2nd try... apparently first try was rejected as spam???
On Oct 24, 2007, at 5:27 AM, Viet Nguyen wrote:
On 10/24/07, ivanrc <[EMAIL PROTECTED]> wrote:
Hi,
I want to deploy EJB CMP. The EJB is deployed well, but I obtain by
logs
this lines about dababase pool that I want to use:
10:06:58,154 WARN [ResourceRefBuilder] Failed to build reference to
resource reference [jdbc/gsePool] defined in plan file, reason -
corresponding entry in deployment descriptor missing.
In openejb-jar.xml, this is the Entity tag´s resource-ref:
<resource-ref>
<ref-name>jdbc/gsePool</ref-name>
<resource-link>gsePool</resource-link>
</resource-ref>
I can connect remotedly to EJB but I don´t obtain elements from DB.
Could anyone help me?.Thanks
OPENEJB-JAR.XML
<?xml version="1.0" encoding="UTF-8"?>
<openejb-jar
xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1 "
xmlns:nam="http://geronimo.apache.org/xml/ns/
naming-1.1"
xmlns:pkgen=" http://www.openejb.org/xml/ns/pkgen-2.0"
xmlns:sec="http://geronimo.apache.org/xml/ns/
security-1.1"
xmlns:sys=" http://geronimo.apache.org/xml/ns/
deployment-1.2">
<sys:environment>
<sys:moduleId>
<sys:groupId>default</sys:groupId>
<sys:artifactId>EstadoAlarmaBean</
sys:artifactId>
<sys:version>1.31</sys:version>
<sys:type>jar</sys:type>
</sys:moduleId>
</sys:environment>
<enterprise-beans>
<entity>
<ejb-name>EstadoAlarmaBean</ejb-name>
<jndi-name>EstadoAlarma</jndi-name>
<table-name>CRC_GSE_ALAR_ESTADO_ALARMA</table-name>
<cmp-field-mapping>
<cmp-field-name>estadoAlarma</cmp-field-name>
<table-column>ESTADO_ALARMA_TP</table-column>
</cmp-field-mapping>
<cmp-field-mapping>
<cmp-field-name>estadoAlarmaGIA</cmp-field-
name>
<table-column>ESTADO_ALARMA_GIA_NU</table-
column>
</cmp-field-mapping>
<resource-ref>
<ref-name>jdbc/gsePool</ref-name>
<resource-link>gsePool</resource-link>
</resource-ref>
</entity>
</enterprise-beans>
</openejb-jar>
EJB-JAR-XML
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns=" http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=" http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" version="2.1">
<enterprise-beans>
<entity>
<display-name></display-name>
<ejb-name>EstadoAlarmaBean</ejb-name>
<home>com.indra.gse.server.ejb.estadoalarma.EstadoAlarmaHome</home>
<remote>com.indra.gse.server.ejb.estadoalarma.EstadoAlarma</remote>
<local-
home>com.indra.gse.server.ejb.estadoalarma.EstadoAlarmaLocalHome</
local-home>
<local>com.indra.gse.server.ejb.estadoalarma.EstadoAlarmaLocal </
local>
<ejb-class>com.indra.gse.server.ejb.estadoalarma.EstadoAlarmaBean</
ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class> java.lang.String</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>EstadoAlarmaBean</abstract-schema-
name>
<cmp-field>
<field-name>estadoAlarma</field-name>
</cmp-field>
<cmp-field>
<field-name>estadoAlarmaGIA</field-name>
</cmp-field>
<primkey-field>estadoAlarma</primkey-field>
<query>
<query-method>
<method-name>findAll</method-name>
<method-params/>
</query-method>
<ejb-ql>SELECT OBJECT(o) FROM EstadoAlarmaBean as o
ORDER BY
o.estadoAlarma</ejb-ql>
</query>
Try adding this to the <entity> element in your ejb-jar.xml.
<resource-ref>
<!-- JNDI name -->
<res-ref-name>gsePool</res-ref-name>
<!-- Object type expected back from JNDI lookup -->
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
I have not tested this.
I think this would be more appropriate if they were BMP entity
beans. For CMP beans which don't use a resource-ref I think you need
to specify the datasource for the cmp engine using a cmp-connection-
factory element following these schema bits:
<xsd:element name="cmp-connection-factory"
type="gernaming:resource-locatorType">
<xsd:annotation>
<xsd:documentation>
The element cmp-connection-factory defines the
connection pool
which will be used by CMP entity beans to connect to
datasource.
This element will be used by openejb specifications.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="resource-locatorType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="pattern"
type="gernaming:patternType">
<xsd:annotation>
<xsd:documentation>
The element pattern is used to provide
additional
selection criterion for resources if
multiple
resources with same resource-name exists in
dependency modules. The pattern mapped
should result
in single resource.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="resource-link" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
The element resource-link is used to
identify the
JDBC, JMS, or JavaMail resource
specified in all the
dependency modules. This name should
match the
connectiondefination-instance/name
defined in
resource adapter deployment descriptor.
If the name
is not unique the pattern element will
be used to
uniquely identify this resource.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="url" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
The element url is used to identify the
resources of
type java.net.URL deployed in all the
dependency
modules. If the url doesn't map to
unique resource
the pattern element will be used to
uniquely
identify this resource.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
Something like
<cmp-connection-factory>
<resource-link>gsePool</resource-link>
</cmp-connection-factory>
ought to work. This would go right after the <environment> element
in your openejb-jar.xml plan
thanks
david jencks
HTH,
Viet
</entity>
</enterprise-beans>
</ejb-jar>
--
View this message in context: http://www.nabble.com/EJB-CMP-%2B-
Database-Pools-config-tf4682861s134.html#a13381206
Sent from the Apache Geronimo - Users mailing list archive at
Nabble.com.