geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Petersson <pe...@pmb.mine.nu>
Subject Web app with jpa -- configuration help needed
Date Fri, 15 Jun 2007 17:25:45 GMT
Hi

Need help on resolving the following configuration problem.
I am trying to find out how to get a geronimo database pool (mysql) used 
in a webapp, JPA managed in G v2.0 M6 (this is just a WAR not a EAR).

I end up stuck at deployment with the following error message.

13:42:42,291 ERROR [Deployer] Deployment failed due to
org.apache.geronimo.common.DeploymentException: At least one deployment 
problem:[org.apache.geronimo.common.DeploymentException: Could not 
resolve reference at deploy time for query 
?name=jbasicDB#org.apache.geronimo.persistence.PersistenceUnitGBean. No 
GBean references found.]
        at 
org.apache.geronimo.persistence.builder.PersistenceUnitRefBuilder.buildNaming(PersistenceUnitRefBuilder.java:154)
        at 
org.apache.geronimo.persistence.builder.PersistenceUnitRefBuilder$$FastClassByCGLIB$$9679ec9.invoke(<generated>)

I have looked around for G/JPA configuration information but the ones I 
have found aether deals with G:s derby db (examples working fine) or is 
a fully fledged EAR application which is a bit of an overkill as this 
app is meant to be used as a educational "stepping stone" app for some 
colleagues ( and me as it seems ;) ).

I'm trying to get hold of the entity manager with the following JNDI 
context lookup name "java:comp/env/jdbc/jbasicDB"

Here is relevant (or not so) parts of the current incarnation of the 
configuration:

persistency.xml (in webapp/WEB-INF)
------------------------------------------------
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             version="1.0"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

  <persistence-unit name="jbasicDB" transaction-type="JTA">
   
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
   <jta-data-source>jdbc/jbasicDB</jta-data-source>
   <class>nu.m4u.jbasic.control.jpa.Users</class>
   <exclude-unlisted-classes/>
    <properties>
     <property name="openjpa.jdbc.DBDictionary" 
value="org.apache.openjpa.jdbc.sql.MySQLDictionary"/>
      <property name="openjpa.ConnectionURL" 
value="jdbc:mysql://localhost:3306/jbasic"/>
      <property name="openjpa.ConnectionDriverName" 
value="com.mysql.jdbc.Driver"/>
      <property name="openjpa.ConnectionUserName" value="xxxxx"/>
      <property name="openjpa.ConnectionPassword" value="xxxxx"/>
      <property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO"/>
    </properties>   
  </persistence-unit>
</persistence>
------------------------------------------------

geronimo-web.xml
------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.2"
         xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.1"
         xmlns:sec="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>jbasic</sys:groupId>
      <sys:artifactId>jbasic2</sys:artifactId>
      <sys:type>war</sys:type>
    </sys:moduleId>
    <sys:dependencies>
      <sys:dependency>
         <sys:groupId>console.dbpool</sys:groupId>
         <sys:artifactId>jbasicDB</sys:artifactId>
         <sys:version>1.0</sys:version>
         <sys:type>rar</sys:type>
      </sys:dependency>    
      <sys:dependency>
        <sys:groupId>mysql</sys:groupId>
        <sys:artifactId>mysql-connector-java</sys:artifactId>
        <sys:version>3.1.12</sys:version>
        <sys:type>jar</sys:type>   
      </sys:dependency>
      <!--   
      <sys:dependency>
         <sys:groupId>org.apache.geronimo.configs</sys:groupId>
         <sys:artifactId>openjpa</sys:artifactId>
         <sys:type>car</sys:type>
      </sys:dependency>
      -->         
    </sys:dependencies>      
  </sys:environment>
 
  <context-root>/jbasic2</context-root>
 
  <persistence-unit-ref>
     <persistence-unit-ref-name>jdbc/jbasicDB</persistence-unit-ref-name>
     <persistence-unit-name>jbasicDB</persistence-unit-name>
  </persistence-unit-ref>

<!--       
  <sys:resource-ref>
     <sys:ref-name>jdbc/jbasicDB</sys:ref-name>
     <sys:resource-link>jbasicDB</sys:resource-link>
  </sys:resource-ref>
-->   

</web-app>   
------------------------------------------------

web.xml
------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
    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/web-app_2_4.xsd">
    <!-- Nothing much here yet -->    
<!--      
    <resource-ref>
        <res-ref-name>jdbc/jbasicDB</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>    
-->          
</web-app>    
------------------------------------------------
 
database pool plan
------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2">
    <dep:environment 
xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">
        <dep:moduleId>
            <dep:groupId>console.dbpool</dep:groupId>
            <dep:artifactId>jbasicDB</dep:artifactId>
            <dep:version>1.0</dep:version>
            <dep:type>rar</dep:type>
        </dep:moduleId>
        <dep:dependencies>
            <dep:dependency>
                <dep:groupId>mysql</dep:groupId>
                <dep:artifactId>mysql-connector-java</dep:artifactId>
                <dep:version>3.1.12</dep:version>
                <dep:type>jar</dep:type>
            </dep:dependency>
        </dep:dependencies>
    </dep:environment>
    <resourceadapter>
        <outbound-resourceadapter>
            <connection-definition>
                
<connectionfactory-interface>javax.sql.DataSource</connectionfactory-interface>
                <connectiondefinition-instance>
                    <name>jbasicDB</name>
                    <config-property-setting 
name="Password">xxxx</config-property-setting>
                    <config-property-setting 
name="Driver">com.mysql.jdbc.Driver</config-property-setting>
                    <config-property-setting 
name="UserName">xxxx</config-property-setting>
                    <config-property-setting 
name="ConnectionURL">jdbc:mysql://localhost:3306/jbasic</config-property-setting>
                    <connectionmanager>
                        <local-transaction/>
                        <single-pool>
                            <max-size>10</max-size>
                            <min-size>0</min-size>
                            <match-one/>
                        </single-pool>
                    </connectionmanager>
                </connectiondefinition-instance>
            </connection-definition>
        </outbound-resourceadapter>
    </resourceadapter>
</connector>
------------------------------------------------

Anny help is appreciated !
/Peter Petersson

Mime
View raw message