I'm having a good amount of troubles trying to get an EAR deployed from a
relatively small Geronimo application on geronimo 1.1.1
Here is the output I'm getting
C:\geronimo-1.1.1\bin>deploy --user system --password manager deploy
c:\j2g-demo
-app\bin\geronimo-application.xml c:\j2g-demo-app\bin\TravelApp.ear
Using GERONIMO_BASE: C:\geronimo-1.1.1
Using GERONIMO_HOME: C:\geronimo-1.1.1
Using GERONIMO_TMPDIR: C:\geronimo-1.1.1\var\temp
Using JRE_HOME: C:\Program Files\Java\jdk1.5.0_11
Error: Unable to distribute TravelApp.ear: Unable to resolve
resource reference 'jdbc/DefaultDS' (Could not auto-map to resource.
Try adding a resource-ref mapping to your Geronimo deployment
plan.)
I'm relatively sure this issue is coming from the openejb-jar.xml file, and
in the cmp-connection-factory resource-link tag at that.
Here is that segment of that particular XML
<naming:cmp-connection-factory>
<naming:resource-link>DefaultDS</naming:resource-link>
</naming:cmp-connection-factory>
(The reason I believe it to be here is due to the fact that changing
defaultds in that tag changes the defaultds in the deployment error)
I've tried to do as it recommends, with adding a resource-ref mapping, but
can't quite figure out the proper location/syntax for it
I'm GUESSING there is something that I'm just missing due to inexperience,
and am hoping one of you guys that's a good deal more seasoned might be able
to point it out ot me.
Thanks!
For reference here is a copy of the entire openejb-jar.xml file.
-------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1"
xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.1" xmlns:security="
http://geronimo.apache.org/xml/ns/security-1.1" xmlns:sys="
http://geronimo.apache.org/xml/ns/deployment-1.1">
<sys:environment>
<sys:moduleId>
<sys:groupId>j2g.java</sys:groupId>
<sys:artifactId>ejb-module</sys:artifactId>
<sys:version>1.0</sys:version>
<sys:type>jar</sys:type>
</sys:moduleId>
<sys:dependencies>
<sys:dependency>
<sys:groupId>j2g</sys:groupId>
<sys:artifactId>jms</sys:artifactId>
<sys:version>1.0</sys:version>
<sys:type>rar</sys:type>
</sys:dependency>
<sys:dependency>
<sys:groupId>j2g.java</sys:groupId>
<sys:artifactId>DefaultDS</sys:artifactId>
</sys:dependency>
<sys:dependency>
<sys:groupId>j2g</sys:groupId>
<sys:artifactId>security</sys:artifactId>
<sys:version>1.0</sys:version>
<sys:type>rar</sys:type>
</sys:dependency>
</sys:dependencies>
</sys:environment>
<naming:cmp-connection-factory>
<naming:resource-link>DefaultDS</naming:resource-link>
</naming:cmp-connection-factory>
<enforce-foreign-key-constraints/>
<enterprise-beans>
<entity>
<ejb-name>CustomerEJB</ejb-name>
<table-name>Customer</table-name>
<cmp-field-mapping>
<cmp-field-name>id</cmp-field-name>
<table-column>ID</table-column>
</cmp-field-mapping>
<cmp-field-mapping>
<cmp-field-name>lastName</cmp-field-name>
<table-column>LAST_NAME</table-column>
</cmp-field-mapping>
<cmp-field-mapping>
<cmp-field-name>firstName</cmp-field-name>
<table-column>FIRST_NAME</table-column>
</cmp-field-mapping>
<cmp-field-mapping>
<cmp-field-name>email</cmp-field-name>
<table-column>EMAIL</table-column>
</cmp-field-mapping>
<resource-ref>
<ref-name>jdbc/TravelDB</ref-name>
<pattern>
<groupId>j2g.java</groupId>
<artifactId>DefaultDS</artifactId>
<name>DefaultDS</name>
</pattern>
</resource-ref>
</entity>
<entity>
<ejb-name>AgentEJB</ejb-name>
<table-name>Agent</table-name>
<cmp-field-mapping>
<cmp-field-name>id</cmp-field-name>
<table-column>ID</table-column>
</cmp-field-mapping>
<cmp-field-mapping>
<cmp-field-name>firstName</cmp-field-name>
<table-column>FIRST_NAME</table-column>
</cmp-field-mapping>
<cmp-field-mapping>
<cmp-field-name>lastName</cmp-field-name>
<table-column>LAST_NAME</table-column>
</cmp-field-mapping>
<cmp-field-mapping>
<cmp-field-name>organization</cmp-field-name>
<table-column>ORGANIZATION</table-column>
</cmp-field-mapping>
<cmp-field-mapping>
<cmp-field-name>login</cmp-field-name>
<table-column>LOGIN</table-column>
</cmp-field-mapping>
<cmp-field-mapping>
<cmp-field-name>passwordHash</cmp-field-name>
<table-column>PASSWORDHASH</table-column>
</cmp-field-mapping>
</entity>
<entity>
<ejb-name>CruiseEJB</ejb-name>
<table-name>Cruise</table-name>
<cmp-field-mapping>
<cmp-field-name>id</cmp-field-name>
<table-column>ID</table-column>
</cmp-field-mapping>
<cmp-field-mapping>
<cmp-field-name>destination</cmp-field-name>
<table-column>DESTINATION</table-column>
</cmp-field-mapping>
</entity>
<entity>
<ejb-name>CabinEJB</ejb-name>
<table-name>Cabin</table-name>
<cmp-field-mapping>
<cmp-field-name>id</cmp-field-name>
<table-column>ID</table-column>
</cmp-field-mapping>
<cmp-field-mapping>
<cmp-field-name>number</cmp-field-name>
<table-column>NUMBER</table-column>
</cmp-field-mapping>
</entity>
<entity>
<ejb-name>ReservationEJB</ejb-name>
<table-name>Reservation</table-name>
<cmp-field-mapping>
<cmp-field-name>id</cmp-field-name>
<table-column>ID</table-column>
</cmp-field-mapping>
<resource-ref>
<ref-name>jdbc/TravelDB</ref-name>
<pattern>
<groupId>j2g.java</groupId>
<artifactId>DefaultDS</artifactId>
<name>DefaultDS</name>
</pattern>
</resource-ref>
</entity>
<entity>
<ejb-name>TicketEJB</ejb-name>
<table-name>Ticket</table-name>
<cmp-field-mapping>
<cmp-field-name>id</cmp-field-name>
<table-column>ID</table-column>
</cmp-field-mapping>
<resource-ref>
<ref-name>jdbc/TravelDB</ref-name>
<pattern>
<groupId>j2g.java</groupId>
<artifactId>DefaultDS</artifactId>
<name>DefaultDS</name>
</pattern>
</resource-ref>
</entity>
<message-driven>
<ejb-name>ReservationProcessorEJB</ejb-name>
<resource-adapter>
<resource-link>j2g.queues</resource-link>
</resource-adapter>
<activation-config>
<activation-config-property>
<activation-config-property-name>destination</activation-config-property-name>
<activation-config-property-value>CabinReservationQueue</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Queue
</activation-config-property-value>
</activation-config-property>
</activation-config>
<resource-ref>
<ref-name>mail/JavaMailSession</ref-name>
<resource-link>mailSession</resource-link>
</resource-ref>
</message-driven>
</enterprise-beans>
<relationships>
<ejb-relation>
<ejb-relation-name>Cruise-Cabin</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Cruise-has-many-Cabins</ejb-relationship-role-name>
<relationship-role-source>
<ejb-name>CruiseEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>cabins</cmr-field-name>
</cmr-field>
<role-mapping>
<cmr-field-mapping>
<key-column>ID</key-column>
<foreign-key-column>cruise</foreign-key-column>
</cmr-field-mapping>
</role-mapping>
</ejb-relationship-role>
</ejb-relation>
<ejb-relation>
<ejb-relation-name>Customer-Reservation</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Customer-has-many-reservations</ejb-relationship-role-name>
<relationship-role-source>
<ejb-name>CustomerEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>reservations</cmr-field-name>
</cmr-field>
<role-mapping>
<cmr-field-mapping>
<key-column>ID</key-column>
<foreign-key-column>customer</foreign-key-column>
</cmr-field-mapping>
</role-mapping>
</ejb-relationship-role>
</ejb-relation>
<ejb-relation>
<ejb-relation-name>Customer-Ticket</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Customer-has-many-tickets</ejb-relationship-role-name>
<relationship-role-source>
<ejb-name>CustomerEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>tickets</cmr-field-name>
</cmr-field>
<role-mapping>
<cmr-field-mapping>
<key-column>ID</key-column>
<foreign-key-column>customer</foreign-key-column>
</cmr-field-mapping>
</role-mapping>
</ejb-relationship-role>
</ejb-relation>
<ejb-relation>
<ejb-relation-name>Ticket-Agent</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Ticket-sells-by-agent</ejb-relationship-role-name>
<relationship-role-source>
<ejb-name>TicketEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>agent</cmr-field-name>
</cmr-field>
<foreign-key-column-on-source/>
<role-mapping>
<cmr-field-mapping>
<key-column>ID</key-column>
<foreign-key-column>agent</foreign-key-column>
</cmr-field-mapping>
</role-mapping>
</ejb-relationship-role>
</ejb-relation>
<ejb-relation>
<ejb-relation-name>Ticket-Cruise</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Cruise-has-many-tickets</ejb-relationship-role-name>
<relationship-role-source>
<ejb-name>TicketEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>cruise</cmr-field-name>
</cmr-field>
<foreign-key-column-on-source/>
<role-mapping>
<cmr-field-mapping>
<key-column>ID</key-column>
<foreign-key-column>cruise</foreign-key-column>
</cmr-field-mapping>
</role-mapping>
</ejb-relationship-role>
</ejb-relation>
<ejb-relation>
<ejb-relation-name>Ticket-Cabin</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Ticket-for-one-cabin</ejb-relationship-role-name>
<relationship-role-source>
<ejb-name>CabinEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>ticket</cmr-field-name>
</cmr-field>
<role-mapping>
<cmr-field-mapping>
<key-column>ID</key-column>
<foreign-key-column>cabin</foreign-key-column>
</cmr-field-mapping>
</role-mapping>
</ejb-relationship-role>
</ejb-relation>
<ejb-relation>
<ejb-relation-name>Reservation-Cruise</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Cruise-has-many-reservations</ejb-relationship-role-name>
<relationship-role-source>
<ejb-name>ReservationEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>cruise</cmr-field-name>
</cmr-field>
<foreign-key-column-on-source/>
<role-mapping>
<cmr-field-mapping>
<key-column>ID</key-column>
<foreign-key-column>cruise</foreign-key-column>
</cmr-field-mapping>
</role-mapping>
</ejb-relationship-role>
</ejb-relation>
<ejb-relation>
<ejb-relation-name>Reservation-Cabin</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Cabin-has-Reservation</ejb-relationship-role-name>
<relationship-role-source>
<ejb-name>CabinEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>reservation</cmr-field-name>
</cmr-field>
<role-mapping>
<cmr-field-mapping>
<key-column>ID</key-column>
<foreign-key-column>cabin</foreign-key-column>
</cmr-field-mapping>
</role-mapping>
</ejb-relationship-role>
</ejb-relation>
</relationships>
</openejb-jar>
--
Erik B. Craig