On Jun 8, 2007, at 8:12 AM, Erik B. Craig wrote:

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>

This isn't a jndi based resource-ref, so it's not the source of the problem. In 1.1.1 we also never try to add "standard prefixes" like jdbc/ for datasources.

(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)
Are you sure?

I think the problem might be that in the spec dd one of your resource- refs is for jdbc/DefaultDS whereas in the plan below you map jdbc/ TravelDB

just a guess...
Personally I usually set up a database pool with the same name as in the resource-ref itself so I don't have to do the mapping since it is such a pain to set up.

thanks
david jencks


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

Reply via email to