-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: Equinox (OSGi) and JPA/Hibernate - Finding Entities
PostPosted: Mon Jul 27, 2009 4:54 pm 
Newbie

Joined: Tue Jul 22, 2008 5:11 pm
Posts: 16
I am trying to use Hibernate/Spring in an OSGi (Equinox) environment. It works great if I explicitly point it to the Entity classes in the Persistence.xml:

Code:
      <class>com.es.t.eee.domain.StuffSource</class>
      <class>com.es.t.eee.domain.PostalAddress</class>


What I want is for Hibernate to "find" all of the Entity classes just as it does outside of the OSGi environment.

It looks like it should work, but when it gets to the point of looking in the Bundle Jar for @Entities, an exception occurs, and I am not sure why. I have included the important parts of the log that Hibernate is spitting out.

Does anyone have any ideas what I am doing wrong or what the issue here is?

I am using:

    Hibernate Core 3.3.0.SP1
    Hibernate Annotations 3.4.0.GA
    Hibernate Commons Annotations 3.1.0.GA
    Hibernate EntityManager 3.4.0.GA
    Equinox 3.4
    Spring Dynamic Modules 1.2.0

Here is where Hibernate parses the Persistence.xml

Code:
    INFO  27-07 15:30:24,110 (Version.java:<clinit>:15):
    Hibernate Annotations 3.4.0.GA
    INFO  27-07 15:30:24,110 (Environment.java:<clinit>:543):
    Hibernate 3.3.0.SP1
    INFO  27-07 15:30:24,110 (Environment.java:<clinit>:576):
    hibernate.properties not found
    INFO  27-07 15:30:24,126 (Environment.java:buildBytecodeProvider:709):
    Bytecode provider name : javassist
    INFO  27-07 15:30:24,126 (Environment.java:<clinit>:627):
    using JDK 1.4 java.sql.Timestamp handling
    INFO  27-07 15:30:24,157 (Version.java:<clinit>:14):
    Hibernate Commons Annotations 3.1.0.GA
    INFO  27-07 15:30:24,157 (Version.java:<clinit>:16):
    Hibernate EntityManager 3.4.0.GA
    DEBUG 27-07 15:30:24,219 (Ejb3Configuration.java:configure:312):
    Processing PersistenceUnitInfo [
       name: unit.postgresql
       persistence provider classname: null
       classloader: BundleDelegatingClassLoader for [DatabaseObjects (DatabaseObjects)]
       Temporary classloader: org.springframework.instrument.classloading.SimpleThrowawayClassLoader@11b50a1
       excludeUnlistedClasses: true
       JTA datasource: null
       Non JTA datasource: com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 1000, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 1012f6d821goxcok12zcw86|174f02c, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> org.postgresql.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1012f6d821goxcok12zcw86|174f02c, idleConnectionTestPeriod -> 0, initialPoolSize -> 5, jdbcUrl -> jdbc:postgresql://localhost:5432/test2, lastAcquisitionFailureDefaultUser -> null, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 100, maxStatements -> 100, maxStatementsPerConnection -> 0, minPoolSize -> 3, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]
       Transaction type: RESOURCE_LOCAL
       PU root URL: bundleresource://34/
       Jar files URLs []
       Managed classes names []
       Mapping files names []
       Properties [
          hibernate.default_batch_fetch_size: 500
          hibernate.cache.provider_class: net.sf.ehcache.hibernate.EhCacheProvider
          hibernate.dialect: org.hibernate.dialect.PostgreSQLDialect
          hibernate.max_fetch_depth: 5
          hibernate.query.factory_class: org.hibernate.hql.ast.ASTQueryTranslatorFactory
          hibernate.format_sql: false
          hibernate.jdbc.batch_size: 1000
          hibernate.use_outer_join: true
          hibernate.archive.autodetection: class
          hibernate.show_sql: false
          hibernate.bytecode.provider: cglib]



Here is where the error occurs, as it tries to find the entities:

Code:
    DEBUG 27-07 15:30:24,235 (Ejb3Configuration.java:getDetectedArtifacts:562):
    Detect class: true; detect hbm: false
    DEBUG 27-07 15:30:24,235 (Ejb3Configuration.java:getDetectedArtifacts:562):
    Detect class: true; detect hbm: false
    DEBUG 27-07 15:30:24,235 (AbstractJarVisitor.java:unqualify:116):
    Searching mapped entities in jar/par: bundleresource://34/
    WARN  27-07 15:30:24,235 (InputStreamZippedJarVisitor.java:doProcessElements:41):
    Unable to find file (ignored): bundleresource://34/
    java.io.FileNotFoundException: C:\Workspace\DatabaseObjects\bin\ (The system cannot find the path specified)
       at java.io.FileInputStream.open(Native Method)
       at java.io.FileInputStream.<init>(Unknown Source)
       at org.eclipse.osgi.framework.util.SecureAction.getFileInputStream(SecureAction.java:124)
       at org.eclipse.osgi.baseadaptor.bundlefile.FileBundleEntry.getInputStream(FileBundleEntry.java:50)
       at org.eclipse.osgi.framework.internal.core.BundleURLConnection.connect(BundleURLConnection.java:53)
       at org.eclipse.osgi.framework.internal.core.BundleURLConnection.getInputStream(BundleURLConnection.java:99)
       at java.net.URL.openStream(Unknown Source)
       at org.hibernate.ejb.packaging.InputStreamZippedJarVisitor.doProcessElements(InputStreamZippedJarVisitor.java:37)
       at org.hibernate.ejb.packaging.AbstractJarVisitor.getMatchingEntries(AbstractJarVisitor.java:139)
       at org.hibernate.ejb.Ejb3Configuration.addScannedEntries(Ejb3Configuration.java:287)
       at org.hibernate.ejb.Ejb3Configuration.scanForClasses(Ejb3Configuration.java:614)
       at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:360)
       at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:131)
       at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:224)
       at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:291)
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
       at java.security.AccessController.doPrivileged(Native Method)
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
       at org.springframework.beans.factory.support.AbstractBeanFactory.isSingleton(AbstractBeanFactory.java:366)
       at org.springframework.osgi.service.exporter.support.OsgiServiceFactoryBean.afterPropertiesSet(OsgiServiceFactoryBean.java:235)
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
       at java.security.AccessController.doPrivileged(Native Method)
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
       at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:288)
       at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:145)
       at java.lang.Thread.run(Unknown Source)


Top
 Profile  
 
 Post subject: Re: Equinox (OSGi) and JPA/Hibernate - Finding Entities
PostPosted: Fri Jul 31, 2009 12:19 pm 
Newbie

Joined: Tue Jul 22, 2008 5:11 pm
Posts: 16
can anyone help?


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.