geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From luoluo <luow...@hotmail.com>
Subject Re: Persistence unit deploy error in 2.1 but works in 2.02
Date Tue, 01 Apr 2008 14:23:40 GMT

I un-comment the hibernate data source property. It could be deployed and
works fine. 

It seems the first jta-data-source makes the persistence unit to be accepted
by Geronimo. And the hibernate data source setting makes hibernate could
correctly locate the data source.



luoluo wrote:
> 
> The data source is created by wizard. The dependency is created in
> Geronimo plan. Here is the plan:
> geronimo-web.xml
> 	<environment>
> 		<moduleId>
> 			<groupId>inpulse8</groupId>
> 			<artifactId>CMWS</artifactId>
> 			<version>1.0.0</version>
> 			<type>war</type>
> 		</moduleId>
> 		<dependencies>
> 			<dependency>
> 				<groupId>console.dbpool</groupId>
> 				<artifactId>inpulse8_cmws</artifactId>
> 			</dependency>
> 		</dependencies>
> 		<hidden-classes>
> 			<filter>org.hibernate</filter>
> 		</hidden-classes>
> 
> 	</environment>
> 
> 	<context-root>/CMWS</context-root>
> 
> 	<resource-ref>
> 		<ref-name>jdbc/cmwsDS</ref-name>
> 		<resource-link>inpulse8_cmws</resource-link>
> 	</resource-ref>
> 
> in web.xml, the data source is declared:
> 	<resource-ref>
> 		<res-ref-name>jdbc/cmwsDS</res-ref-name>
> 		<res-type>javax.sql.DataSource</res-type>
> 		<res-auth>Container</res-auth>
> 		<res-sharing-scope>Shareable</res-sharing-scope>
> 	</resource-ref>
> 
> Now I changed the persistence.xml to:
> 
> 	<persistence-unit name="CMWS"
> 		transaction-type="RESOURCE_LOCAL">
> 		<provider>org.hibernate.ejb.HibernatePersistence</provider>
> 		<jta-data-source>inpulse8_cmws</jta-data-source>
> 		<non-jta-data-source>inpulse8_cmws</non-jta-data-source>
> 		<properties>
> 			<property name="hibernate.archive.autodetection"
> 				value="class" />
> 
> 			<!-- Deploy environment: Using db pooling  ->
> 				<property name="hibernate.connection.datasource"
> 				value="java:comp/env/jdbc/cmwsDS" />
> 			<!-  Deploy environment End -->
> 
> 			<property name="hibernate.dialect"
> 				value="org.hibernate.dialect.MySQL5InnoDBDialect" />
> 
> 			<property name="hibernate.transaction.factory_class"
> 				value="org.hibernate.transaction.JDBCTransactionFactory" />
> 		</properties>
> 
> 	</persistence-unit>
> 
> It could be deployed, but the entity manager can not be initialized
> because of exceptions:
> 
> WARNING: Found unrecognized persistence provider
> "org.hibernate.ejb.HibernatePersistence" in place of OpenJPA provider. 
> This provider's properties will not be used.
> javax.persistence.PersistenceException: Provider error. Provider:
> org.hibernate.ejb.HibernatePersistence
>         at
> javax.persistence.Persistence.createFactory(Persistence.java:176)
>         at
> javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:112)
>         at
> javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:66)
>         at
> com.ek3.inpulse.cmws.persistence.JpaUtil.<clinit>(JpaUtil.java:39)
>         at
> com.ek3.inpulse.cmws.domain.sessionproxy.SessionInvocationHandler.invoke(SessionInvocationHandler.java:37)
>         at $Proxy74.listConfigedClients(Unknown Source)
>         at
> com.ek3.inpulse.cmws.serviceinterface.ProcessConfigurationServiceImpl.listConfigedClients(ProcessConfigurationServiceImpl.java:459)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at
> org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:107)
>         at
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:77)
>         at
> org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:100)
>         at
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:63)
>         at
> org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56)
>         at
> org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
>         at
> org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:92)
>         at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>         at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:73)
>         at
> org.apache.geronimo.cxf.GeronimoDestination.invoke(GeronimoDestination.java:115)
>         at
> org.apache.geronimo.cxf.CXFWebServiceContainer.processPOST(CXFWebServiceContainer.java:107)
>         at
> org.apache.geronimo.cxf.CXFWebServiceContainer.invoke(CXFWebServiceContainer.java:83)
>         at
> org.apache.geronimo.webservices.WebServiceContainerInvoker.service(WebServiceContainerInvoker.java:84)
>         at
> org.apache.geronimo.webservices.POJOWebServiceServlet.service(POJOWebServiceServlet.java:79)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at
> org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56)
>         at
> org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:396)
>         at
> org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
>         at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
>         at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:619)
> Caused by: javax.persistence.PersistenceException: [PersistenceUnit:
> ContentManagementWorkflow] Unable to build EntityManagerFactory
>         at
> org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677)
>         at
> org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
>         at
> javax.persistence.Persistence.createFactory(Persistence.java:172)
>         ... 40 more
> Caused by: org.hibernate.HibernateException: Could not find datasource
>         at
> org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:56)
>         at
> org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
>         at
> org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)
>         at
> org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
>         at
> org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2073)
>         at
> org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1298)
>         at
> org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
>         at
> org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
>         ... 42 more
> Caused by: javax.naming.NameNotFoundException: inpulse8_cmws
>         at
> org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContext.java:169)
>         at
> org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContext.java:603)
>         at javax.naming.InitialContext.lookup(InitialContext.java:392)
>         at
> org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:52)
>  
> I think because hibernate is not loaded into container (I packaged it into
> my war file). It can not find the data_source without JNDI entry. Is there
> any way to embedded hibernate into Geronimo? I use some of hibernate
> specific annotations to extend standard JPA so hibernate is required here.
> 
> Thanks,
> Bill
> 
> djencks wrote:
>> 
>> This is progress :-)
>> 
>> I assume your datasource plan has something like:
>> 
>>        <connectiondefinition-instance>
>>          <name>inpulse_cmws</name>
>> 
>> In this case you need to do two things:
>> 
>> - in persistence.xml, include
>> <jta-datasource>inpulse_cmws</jta-datasource>
>> 
>> - in the geronimo plan for your web app, include a dependency on the  
>> module defining the datasource.
>> 
>> I think that you already have the second set up since that would be  
>> needed for the jndi lookup to work in g 2.0.2
>> 
>> If this doesn't help please include more of your plans.
>> 
>> thanks
>> david jencks
>> 
>> 
>> On Mar 31, 2008, at 2:24 PM, WEIPING (BILL) LUO wrote:
>> 
>>>
>>> Thanks!
>>>
>>> I am not sure which name should I use. So I tried use the db-pool  
>>> name and jdbc/cmwsDS. Geronimo can not deploy it and throw out
>>> Unable to resolve reference "JtaDataSourceWrapper"
>>>     in gbean inpulse8/ContentManagementWorkflow/1.0.0/war? 
>>> J2EEApplication=null,PersistenceUnitModule=WEB-INF/ 
>>> classes/,WebModule=inpulse8/ContentManagementWorkflow/1.0.0/ 
>>> war,j2eeType=PersistenceUnit,name=ContentManagementWorkflow
>>>     to a gbean matching the pattern [?name=java:/ 
>>> inpulse_cmws#org.apache.geronimo.naming.ResourceSource]
>>>     due to: No matches for referencePatterns: [?name=java:/ 
>>> inpulse_cmws#org.apache.geronimo.naming.ResourceSource]
>>> org.apache.geronimo.common.DeploymentException: Unable to resolve  
>>> reference "JtaDataSourceWrapper"
>>>     in gbean inpulse8/ContentManagementWorkflow/1.0.0/war? 
>>> J2EEApplication=null,PersistenceUnitModule=WEB-INF/ 
>>> classes/,WebModule=inpulse8/ContentManagementWorkflow/1.0.0/ 
>>> war,j2eeType=PersistenceUnit,name=ContentManagementWorkflow
>>>     to a gbean matching the pattern [?name=java:/ 
>>> inpulse_cmws#org.apache.geronimo.naming.ResourceSource]
>>>     due to: No matches for referencePatterns: [?name=java:/ 
>>> inpulse_cmws#org.apache.geronimo.naming.ResourceSource]
>>> 	at  
>>> org.apache.geronimo.deployment.DeploymentContext.getConfigurationData( 
>>> DeploymentContext.java:516)
>>> 	at org.apache.geronimo.deployment.Deployer.install(Deployer.java:319)
>>> 	at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:256)
>>> 	at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:133)
>>> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> 	at sun.reflect.NativeMethodAccessorImpl.invoke 
>>> (NativeMethodAccessorImpl.java:39)
>>> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke 
>>> (DelegatingMethodAccessorImpl.java:25)
>>> 	at java.lang.reflect.Method.invoke(Method.java:597)
>>> 	at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke 
>>> (ReflectionMethodInvoker.java:34)
>>> 	at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke 
>>> (GBeanOperation.java:124)
>>> 	at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke 
>>> (GBeanInstance.java:867)
>>> 	at org.apache.geronimo.kernel.basic.BasicKernel.invoke 
>>> (BasicKernel.java:239)
>>> 	at  
>>> org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doDe 
>>> ploy(AbstractDeployCommand.java:116)
>>> 	at  
>>> org.apache.geronimo.deployment.plugin.local.DistributeCommand.run 
>>> (DistributeCommand.java:61)
>>> 	at java.lang.Thread.run(Thread.java:619)
>>>
>>> So is there any document to discuss about how to set it without JNDI?
>>>
>>>
>>> Regards,
>>>
>>> Bill
>>> ----------------------------------------
>>>> From: david_jencks@yahoo.com
>>>> Subject: Re: Persistence unit deploy error in 2.1 but works in 2.02
>>>> Date: Mon, 31 Mar 2008 13:37:58 -0700
>>>> To: user@geronimo.apache.org
>>>>
>>>> It's generally considered more polite to continue the original thread
>>>> you start, answering requests for more information, rather than to
>>>> appear to ignore responses and start new threads on the same topic.
>>>> In this case I realize you may be having problems with your mail
>>>> provider.
>>>> On Mar 31, 2008, at 1:25 PM, luoluo wrote:
>>>>
>>>>>
>>>>> Hi,
>>>>>
>>>>> I have an application using JPA with hibernate. I changed the
>>>>> persistence
>>>>> provider to hibernate and trying to using db-pools.  It works
>>>>> perfectly fine
>>>>> in Geronimo 2.02. But when I tried to deploy it to Geronimo 2.1. It
>>>>> throw
>>>>> out an exception with can not find JNDI entry for the data source  
>>>>> when
>>>>> Geronimo try to start the application.
>>>>>
>>>>> in persistence.xml, I use below to refer the data source:
>>>>>
>>>>>
>>>>> 	org.hibernate.ejb.HibernatePersistence
>>>>> 	
>>>>> 		> 				value="class" />
>>>>>
>>>>> 	        > 				value="java:/comp/env/jdbc/CmwsDS" />
>>>>> ...
>>>>>
>>>>> The data source is created and defined in web.xml too.
>>>>>
>>>>> I found the different between 2.0.2 and 2.1.  In 2.0.2, the entity
>>>>> manager
>>>>> was initialized when first time db-access. At that time, the data
>>>>> source is
>>>>> already be registered in JNDI as /comp/env/jdbc/...DS.
>>>>>
>>>>> In 2.1, Geronimo try to initialize the entity manager when starting
>>>>> the
>>>>> application. The sequence is wrong. It tried to find the data
>>>>> source before
>>>>> the reference in Web.xml been registered. So the JNDI entry not find
>>>>> exception was thrown out.
>>>>>
>>>>> Is that a bug of Geronimo 2.1? Is there any way to work around this
>>>>> issue in
>>>>> 2.1?
>>>>
>>>> I recommend you use the jpa standard way of specifying datasources
>>>> for jpa (using the jta-datasource and non-jta-datasource elements)
>>>> rather than this hibernate specific way using a hibernate specific
>>>> property.  Since in geronimo the jpa standard way does not rely on
>>>> jndi, you will not have this problem.
>>>>
>>>> Can you provide a stack trace of the problem you are seeing?  That
>>>> would help figure out what is causing the earlier initialization.
>>>>
>>>> thanks
>>>> david jencks
>>>>
>>>>>
>>>>> Thanks!
>>>>>
>>>>> Bill
>>>>>
>>>>> -- 
>>>>> View this message in context: http://www.nabble.com/Persistence-
>>>>> unit-deploy-error-in-2.1-but-works-in-2.02-
>>>>> tp16396504s134p16396504.html
>>>>> Sent from the Apache Geronimo - Users mailing list archive at
>>>>> Nabble.com.
>>>>>
>>>>
>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Persistence-unit-deploy-error-in-2.1-but-works-in-2.02-tp16396504s134p16418461.html
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.


Mime
View raw message