Hi Rafal, You don't have to do that as spring-orm bundle import the following openJpa package :
org.apache.openjpa.persistence;version="[1.0.2, 2.0.0)";resolution:= optional You must refresh your spring-orm bundle to force it to discover the openJpa packages like this : osgi:refresh spring orm bunde id Kind Regards, Charles Moulliard Senior Enterprise Architect Apache Camel Committer ***************************** blog : http://cmoulliard.blogspot.com twitter : http://twitter.com/cmoulliard Linkedlin : http://www.linkedin.com/in/charlesmoulliard Apache Camel Group : http://www.linkedin.com/groups?home=&gid=2447439&trk=anet_ug_hm On Tue, Feb 2, 2010 at 5:19 PM, Rafal Rusin <[email protected]> wrote: > OK, I figured out the last problem. > The problem was in bundles structure, something similar to one > described here: http://forum.springsource.org/showthread.php?t=59069. > > My bundle imported spring-orm, which tried to instantiate OpenJPA > class from another bundle. > Apparently spring-orm 2.5.6-SEC01 doesn't have dynamic or static > import for OpenJPA and this resulted in NoClassDefFoundError. > The solution (which is not really good, but works) is to embed > spring-orm into application bundle, like this: > > > <Embed-Dependency>saxon*,h2,spring-orm,spring-jdbc,spring-aspects,hise-wsdl;scope=compile|runtime</Embed-Dependency> > <Embed-Transitive>true</Embed-Transitive> > > > On 2 February 2010 16:47, Rafal Rusin <[email protected]> wrote: > > Thanks guys for clues. > > Both approaches (Commons DBCP and SimpleDriverDataSource) seem to > > resolve initial problem with null arguments for JDBC driver. > > As for defining connection properties inside persistence.xml, I would > > like to avoid it, but I tested it. > > > > In all 3 scenarios (DBCP, SimpleDriverDataSource, persistence.xml > > connection config), I got the same error: > > > > --------------------------------------------- > > 16:13:07,492 | WARN | 8470...@qtp1-1 | PhaseInterceptorChain > > | ache.cxf.common.logging.LogUtils 361 | Application > > { > http://www.insurance.example.com/claims}ClaimsHandlingService#{http://www.insurance.example.com/claims}approve<http://www.insurance.example.com/claims%7DClaimsHandlingService#%7Bhttp://www.insurance.example.com/claims%7Dapprove> > > has thrown exception, unwinding now > > org.apache.cxf.interceptor.Fault: > > org/apache/openjpa/persistence/OpenJPAPersistence > > at > org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:155) > > at > org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:85) > > at > org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:121) > > at > org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:60) > > at > org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75) > > at > org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) > > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417) > > at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) > > at java.util.concurrent.FutureTask.run(FutureTask.java:123) > > at > org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) > > at > org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106) > > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:239) > > at > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109) > > at > org.apache.cxf.transport.http_osgi.OsgiDestination.doMessage(OsgiDestination.java:79) > > at > org.apache.cxf.transport.http_osgi.OsgiServletController.invokeDestination(OsgiServletController.java:324) > > at > org.apache.cxf.transport.http_osgi.OsgiServletController.invoke(OsgiServletController.java:148) > > at > org.apache.cxf.transport.http_osgi.OsgiServlet.invoke(OsgiServlet.java:53) > > at > org.apache.cxf.transport.http_osgi.SpringOsgiServlet.invoke(SpringOsgiServlet.java:48) > > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179) > > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) > > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159) > > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) > > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:363) > > at > org.ops4j.pax.web.service.internal.HttpServiceServletHandler.handle(HttpServiceServletHandler.java:64) > > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) > > at > org.ops4j.pax.web.service.internal.HttpServiceContext.handle(HttpServiceContext.java:111) > > at > org.ops4j.pax.web.service.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:64) > > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > > at org.mortbay.jetty.Server.handle(Server.java:324) > > at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) > > at > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879) > > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741) > > at > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213) > > at > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403) > > at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) > > at > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522) > > Caused by: java.lang.NoClassDefFoundError: > > org/apache/openjpa/persistence/OpenJPAPersistence > > at > org.springframework.orm.jpa.vendor.OpenJpaDialect.getOpenJPAEntityManager(OpenJpaDialect.java:73) > > at > org.springframework.orm.jpa.vendor.OpenJpaDialect.beginTransaction(OpenJpaDialect.java:51) > > at > org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:330) > > at > org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374) > > 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:585) > > at > org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) > > at > org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58) > > at > org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62) > > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) > > at > org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) > > at > org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) > > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) > > at > org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56) > > at > org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39) > > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) > > at > org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59) > > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) > > at > org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) > > at > org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) > > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) > > at > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) > > at $Proxy113.getTransaction(Unknown Source) > > at > org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:125) > > at > org.apache.hise.engine.jaxws.HISEJaxWSService.invoke(HISEJaxWSService.java:88) > > at > org.apache.hise.engine.jaxws.HISEJaxWSService.invoke(HISEJaxWSService.java:51) > > 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:585) > > at > org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173) > > at > org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89) > > ... 35 more > > --------------------------------------------- > > > > However, I have required imports in manifest, like: > > <Import-Package> > > org.apache.openjpa.persistence, org.h2 > > > > > > On 2 February 2010 15:15, Charles Moulliard <[email protected]> > wrote: > >> Rafal, > >> > >> Have you use SimpleDriverDataSource instead of > SingleConnectionDataSource > >> because I see this remark in Spring web site ? > >> > >> > http://static.springsource.org/spring/docs/2.5.6/api/org/springframework/jdbc/datasource/DriverManagerDataSource.html > >> > >> *NOTE: Within special class loading environments such as OSGi, this > class is > >> effectively superseded by > >> SimpleDriverDataSource< > http://static.springsource.org/spring/docs/2.5.6/api/org/springframework/jdbc/datasource/SimpleDriverDataSource.html > >due > >> to general class loading issues with the JDBC DriverManager that be > >> resolved through direct Driver usage (which is exactly what > >> SimpleDriverDataSource does).* > >> > >> Kind regards, > >> > >> Charles Moulliard > >> Senior Enterprise Architect > >> Apache Camel Committer > >> > >> ***************************** > >> blog : http://cmoulliard.blogspot.com > >> twitter : http://twitter.com/cmoulliard > >> Linkedlin : http://www.linkedin.com/in/charlesmoulliard > >> > >> Apache Camel Group : > >> http://www.linkedin.com/groups?home=&gid=2447439&trk=anet_ug_hm > >> > >> > >> On Tue, Feb 2, 2010 at 3:00 PM, Rafal Rusin <[email protected]> > wrote: > >> > >>> Hello, > >>> > >>> I'm trying to create OSGi distro for Apache HISE. > >>> Until now I went quite far, however I've got a problem with running > >>> OpenJPA. > >>> It shows following problem while trying to obtain connection using > >>> Spring's JpaTemplate: > >>> > >>> ----------------------- > >>> 14:20:48,774 | WARN | 6369...@qtp0-1 | PhaseInterceptorChain > >>> | ache.cxf.common.logging.LogUtils 361 | Application > >>> { > >>> > http://www.insurance.example.com/claims}ClaimsHandlingService#{http://www.insurance.example.com/claims}approve<http://www.insurance.example.com/claims%7DClaimsHandlingService#%7Bhttp://www.insurance.example.com/claims%7Dapprove> > < > http://www.insurance.example.com/claims%7DClaimsHandlingService#%7Bhttp://www.insurance.example.com/claims%7Dapprove > > > >>> has thrown exception, unwinding now > >>> org.apache.cxf.interceptor.Fault: Could not open JPA EntityManager for > >>> transaction; nested exception is <openjpa-0.0.0-rnull fatal user > >>> error> org.apache.openjpa.persistence.ArgumentException: A connection > >>> could not be obtained for driver class "null" and URL "null". You may > >>> have specified an invalid URL. > >>> at > >>> > org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:155) > >>> at > >>> > org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:85) > >>> at > >>> > org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:121) > >>> at > >>> > org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:60) > >>> at > >>> > org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75) > >>> at > >>> > org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) > >>> at > >>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417) > >>> at > >>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) > >>> at java.util.concurrent.FutureTask.run(FutureTask.java:123) > >>> at > >>> > org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) > >>> at > >>> > org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106) > >>> at > >>> > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:239) > >>> at > >>> > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109) > >>> at > >>> > org.apache.cxf.transport.http_osgi.OsgiDestination.doMessage(OsgiDestination.java:79) > >>> at > >>> > org.apache.cxf.transport.http_osgi.OsgiServletController.invokeDestination(OsgiServletController.java:324) > >>> at > >>> > org.apache.cxf.transport.http_osgi.OsgiServletController.invoke(OsgiServletController.java:148) > >>> at > >>> > org.apache.cxf.transport.http_osgi.OsgiServlet.invoke(OsgiServlet.java:53) > >>> at > >>> > org.apache.cxf.transport.http_osgi.SpringOsgiServlet.invoke(SpringOsgiServlet.java:48) > >>> at > >>> > org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179) > >>> at > >>> > org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103) > >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) > >>> at > >>> > org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159) > >>> at > >>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) > >>> at > >>> > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:363) > >>> at > >>> > org.ops4j.pax.web.service.internal.HttpServiceServletHandler.handle(HttpServiceServletHandler.java:64) > >>> at > >>> > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > >>> at > >>> > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) > >>> at > >>> > org.ops4j.pax.web.service.internal.HttpServiceContext.handle(HttpServiceContext.java:111) > >>> at > >>> > org.ops4j.pax.web.service.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:64) > >>> at > >>> > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > >>> at org.mortbay.jetty.Server.handle(Server.java:324) > >>> at > >>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) > >>> at > >>> > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879) > >>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741) > >>> at > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213) > >>> at > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403) > >>> at > >>> > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) > >>> at > >>> > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522) > >>> Caused by: > >>> org.springframework.transaction.CannotCreateTransactionException: > >>> Could not open JPA EntityManager for transaction; nested exception is > >>> <openjpa-0.0.0-rnull fatal user error> > >>> org.apache.openjpa.persistence.ArgumentException: A connection could > >>> not be obtained for driver class "null" and URL "null". You may have > >>> specified an invalid URL. > >>> at > >>> > org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:375) > >>> at > >>> > org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374) > >>> 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:585) > >>> at > >>> > org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) > >>> at > >>> > org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58) > >>> at > >>> > org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62) > >>> at > >>> > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) > >>> at > >>> > org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) > >>> at > >>> > org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) > >>> at > >>> > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) > >>> at > >>> > org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56) > >>> at > >>> > org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39) > >>> at > >>> > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) > >>> at > >>> > org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59) > >>> at > >>> > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) > >>> at > >>> > org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) > >>> at > >>> > org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) > >>> at > >>> > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) > >>> at > >>> > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) > >>> at $Proxy111.getTransaction(Unknown Source) > >>> at > >>> > org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:125) > >>> at > >>> > org.apache.hise.engine.jaxws.HISEJaxWSService.invoke(HISEJaxWSService.java:88) > >>> at > >>> > org.apache.hise.engine.jaxws.HISEJaxWSService.invoke(HISEJaxWSService.java:51) > >>> 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:585) > >>> at > >>> > org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173) > >>> at > >>> > org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89) > >>> ... 35 more > >>> Caused by: <openjpa-0.0.0-rnull fatal user error> > >>> org.apache.openjpa.persistence.ArgumentException: A connection could > >>> not be obtained for driver class "null" and URL "null". You may have > >>> specified an invalid URL. > >>> at > >>> > org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:256) > >>> at > >>> > org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:242) > >>> at > >>> > org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:692) > >>> at > >>> > org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource(JDBCConfigurationImpl.java:790) > >>> at > >>> > org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource2(JDBCConfigurationImpl.java:797) > >>> at > >>> org.apache.openjpa.jdbc.schema.SchemaTool.<init>(SchemaTool.java:127) > >>> at > >>> > org.apache.openjpa.jdbc.meta.MappingTool.newSchemaTool(MappingTool.java:310) > >>> at > >>> org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:490) > >>> at > >>> org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:453) > >>> at > >>> > org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:159) > >>> at > >>> > org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:119) > >>> at > >>> > org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:189) > >>> at > >>> > org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142) > >>> at > >>> > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192) > >>> at > >>> > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145) > >>> at > >>> > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56) > >>> at > >>> > org.springframework.orm.jpa.JpaTransactionManager.createEntityManagerForTransaction(JpaTransactionManager.java:392) > >>> at > >>> > org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:320) > >>> ... 66 more > >>> Caused by: java.sql.SQLException: No suitable driver > >>> at java.sql.DriverManager.getConnection(DriverManager.java:545) > >>> at java.sql.DriverManager.getConnection(DriverManager.java:140) > >>> at > >>> > org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:174) > >>> at > >>> > org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:165) > >>> at > >>> > org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:149) > >>> at > >>> > org.springframework.jdbc.datasource.SingleConnectionDataSource.initConnection(SingleConnectionDataSource.java:241) > >>> at > >>> > org.springframework.jdbc.datasource.SingleConnectionDataSource.getConnection(SingleConnectionDataSource.java:184) > >>> at > >>> > org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:112) > >>> at > >>> > org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:93) > >>> at > >>> > org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:234) > >>> ... 82 more > >>> ----------------------- > >>> > >>> > >>> > >>> Obviously those required parameters are set in following config: > >>> > >>> ----------------------- > >>> <bean id="htEntityManagerFactory" > >>> > class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> > >>> <property name="dataSource" ref="dataSource" /> > >>> <property name="jpaVendorAdapter" ref="jpaVendorAdapter"/> > >>> <property name="jpaPropertyMap" ref="jpaPropertyMap"/> > >>> <property name="persistenceXmlLocation" > >>> value="classpath:/org/apache/hise/persistence.xml" /> > >>> <property name="persistenceUnitName" value="org.apache.hise"/> > >>> </bean> > >>> > >>> <util:map id="jpaPropertyMap"> > >>> </util:map> > >>> > >>> <!-- OpenJPA H2 Driver --> > >>> <bean id="jpaVendorAdapter" > >>> class="org.apache.hise.dao.vendor.OpenJpaVendorAdapter"> > >>> <property name="database" value="H2"/> > >>> <property name="databasePlatform" > >>> value="org.apache.openjpa.jdbc.sql.H2Dictionary"/> > >>> <property name="generateDdl" value="true" /> > >>> <property name="showSql" value="false" /> > >>> <property name="extProperties"> > >>> <util:map> > >>> <entry key="openjpa.jdbc.SynchronizeMappings" > >>> value="buildSchema(ForeignKeys=true,SchemaAction='add')"/> > >>> </util:map> > >>> </property> > >>> </bean> > >>> > >>> > >>> <bean id="dataSource" > >>> class="org.springframework.jdbc.datasource.SingleConnectionDataSource"> > >>> <property name="driverClassName" value="org.h2.Driver" /> > >>> <property name="url" > >>> value="jdbc:h2:file:hise-h2-db;DB_CLOSE_ON_EXIT=false"/> > >>> <property name="username" value="sa" /> > >>> <property name="password"> > >>> <value></value> > >>> </property> > >>> <property name="autoCommit" value="false" /> > >>> <property name="suppressClose" value="true" /> > >>> </bean> > >>> ----------------------- > >>> > >>> > >>> Do you have some ideas why it fails and where to look for clues? > >>> Maybe org.apache.servicemix.bundles.openjpa-1.2.1_2.jar bundle is > >>> incorrect? HISE shows "Starting OpenJPA 0.0.0" log - it's not a good > >>> thing I suppose. > >>> > >>> Here are logs from startup: > >>> > >>> ----------------------- > >>> ka...@root> 99 org.apache.hise WARN [SpringOsgiExtenderThread-39] > >>> openjpa.Runtime - An error occurred while registering a > >>> ClassTransformer with PersistenceUnitInfo: name 'org.apache.hise', > >>> root URL [bundleresource://42.fwk22730182/]. The error has been > >>> consumed. To see it, set your openjpa.Runtime log level to TRACE. > >>> Load-time class transformation will not be available. > >>> 5338 org.apache.hise INFO [pool-5-thread-1] openjpa.Runtime - > >>> Starting OpenJPA 0.0.0 > >>> 5431 org.apache.hise INFO [pool-5-thread-1] openjpa.jdbc.JDBC - > >>> Using dictionary class "org.apache.openjpa.jdbc.sql.H2Dictionary". > >>> Warning: external object model net.sf.saxon.dom.DOMEnvelope has been > >>> loaded, but is not an instance of net.sf.saxon.om.ExternalObjectModel > >>> Warning: external object model net.sf.saxon.dom.DOMObjectModel has > >>> been loaded, but is not an instance of > >>> net.sf.saxon.om.ExternalObjectModel > >>> {http://www.insurance.example.com/claims}ClaimsResolvingPort<http://www.insurance.example.com/claims%7DClaimsResolvingPort> > <http://www.insurance.example.com/claims%7DClaimsResolvingPort> > >>> ----------------------- > >>> > >>> And here are versions of additional bundles I used: > >>> > >>> ----------------------- > >>> cxf-osgi-4.1.0-psc-02-00RC1.jar > >>> h2-1.1.117.jar > >>> hise-bundle-0.1.0-SNAPSHOT.jar > >>> hise-test-example-osgi-0.1.0-SNAPSHOT.jar > >>> org.apache.servicemix.bundles.openjpa-1.2.1_2.jar > >>> org.apache.servicemix.bundles.serp-1.13.1_2.jar > >>> org.apache.servicemix.specs.java-persistence-api-1.1.1-1.4.0.jar > >>> spring-aspects-2.5.6.SEC01.jar > >>> spring-jdbc-2.5.6.SEC01.jar > >>> spring-orm-2.5.6.SEC01.jar > >>> ----------------------- > >>> > >>> SMX4 version I used is from FUSE apache-servicemix-4.1.0-psc-01-00RC1. > >>> > >>> > >>> Regards, > >>> -- > >>> Rafał Rusin > >>> http://rrusin.blogspot.com > >>> http://www.touk.pl > >>> http://top.touk.pl > >>> > >> > > > > > > Regards, > > -- > > Rafał Rusin > > http://rrusin.blogspot.com > > http://www.touk.pl > > http://top.touk.pl > > > > > Regards, > -- > Rafał Rusin > http://rrusin.blogspot.com > http://www.touk.pl > http://top.touk.pl >
