Hi Kevin,

Thanks for your assistance.

bundle #143 (the .10 I guess is revision, the :1 not sure - maybe fragment?) is 
the bundle responsible for initialising the PU (via Spring's 
LocalContainerEntityManagerFactoryBean), it also holds the SpringData 
Repository definitions and @Entity classes.

Since I was hoping SpringData would scan for my Entities, and make my PU 
connection, I don't have a persistence.xml.

Unfortunately, another priority has come up at work - a big bug in deployed 
code that is sucking my time. I won't be able to come back to this until later 
this week, when I'll let you know how I get on.

Very best, Dan.



On 30 Jan 2014, at 14:30, Kevin Sutter wrote:

> Hi Daniel,
> OpenJPA is in the middle of parsing for persistent types.  And, while
> parsing urls, it's coming across the one referenced in the exception
> (bundle://143.10:1) that it can't read.  This looks to be related to some
> osgi bundle.  Does that identifier mean anything to you?  Do you have your
> entity classes specified in your persistence.xml?  Can you post your p.xml
> file just to see if anything jumps out at us?
> 
> You're right that Spring does some classpath scanning, but it's still up to
> OpenJPA to parse the Entity classes so that we can perform some byte-code
> enhancement.
> 
> What else can you tell me about the environment?  It's Karaf, Spring, and
> OpenJPA.  Anything else of interest?
> 
> Thanks,
> Kevin
> 
> 
> On Mon, Jan 27, 2014 at 4:47 PM, Daniel McGreal <dan...@redbite.com> wrote:
> 
>> Hi all.
>> 
>> I started using Karaf 3.0.0 features for the Spring dependencies
>> (3.1.4.RELEASE and OpenJPA 2.3.0).
>> 
>> I now have an OpenJPA error:
>> 
>> Exception in thread "SpringOsgiExtenderThread-2"
>> org.springframework.beans.factory.BeanCreationException: Error creating
>> bean with name 'itemRepository': Injection of persistence dependencies
>> failed; nested exception is <openjpa-2.3.0-r422266:1540826 nonfatal general
>> error> org.apache.openjpa.util.GeneralException: Resource does not exist:
>> bundle://143.10:1
>> at
>> org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:343)
>> at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
>> at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
>> at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
>> at
>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
>> at
>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
>> at
>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
>> at
>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
>> at
>> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:589)
>> at
>> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:925)
>> at
>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:69)
>> at
>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:355)
>> at
>> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
>> at
>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
>> at
>> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132)
>> at java.lang.Thread.run(Thread.java:722)
>> Caused by: <openjpa-2.3.0-r422266:1540826 nonfatal general error>
>> org.apache.openjpa.util.GeneralException: Resource does not
>> exist:bundle://143.10:1
>> at
>> org.apache.openjpa.meta.AbstractCFMetaDataFactory.getPersistentTypeNames(AbstractCFMetaDataFactory.java:635)
>> at
>> org.apache.openjpa.meta.MetaDataRepository.getPersistentTypeNamesInternal(MetaDataRepository.java:1478)
>> at
>> org.apache.openjpa.meta.MetaDataRepository.getPersistentTypeNames(MetaDataRepository.java:1470)
>> at
>> org.apache.openjpa.meta.MetaDataRepository.loadPersistentTypesInternal(MetaDataRepository.java:1522)
>> at
>> org.apache.openjpa.meta.MetaDataRepository.loadPersistentTypes(MetaDataRepository.java:1513)
>> at
>> org.apache.openjpa.meta.MetaDataRepository.loadPersistentTypes(MetaDataRepository.java:1493)
>> at
>> org.apache.openjpa.persistence.meta.MetamodelImpl.<init>(MetamodelImpl.java:84)
>> at
>> org.apache.openjpa.persistence.EntityManagerFactoryImpl.getMetamodel(EntityManagerFactoryImpl.java:345)
>> at
>> org.apache.openjpa.persistence.EntityManagerFactoryImpl.getMetamodel(EntityManagerFactoryImpl.java:59)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:601)
>> at
>> org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.invokeProxyMethod(AbstractEntityManagerFactoryBean.java:376)
>> at
>> org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$ManagedEntityManagerFactoryInvocationHandler.invoke(AbstractEntityManagerFactoryBean.java:517)
>> at $Proxy33.getMetamodel(Unknown Source)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:601)
>> at
>> org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:176)
>> at $Proxy34.getMetamodel(Unknown Source)
>> at
>> org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.setEntityManager(JpaRepositoryFactoryBean.java:50)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:601)
>> at
>> org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:164)
>> at
>> org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:92)
>> at
>> org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:340)
>> ... 15 more
>> Caused by: java.io.IOException: Resource does not exist: bundle://143.10:1
>> at
>> org.apache.felix.framework.URLHandlersBundleURLConnection.<init>(URLHandlersBundleURLConnection.java:60)
>> at
>> org.apache.felix.framework.URLHandlersBundleStreamHandler.openConnection(URLHandlersBundleStreamHandler.java:64)
>> at java.net.URL.openConnection(URL.java:969)
>> at java.net.URL.openStream(URL.java:1035)
>> at
>> org.apache.openjpa.lib.util.J2DoPrivHelper$43.run(J2DoPrivHelper.java:946)
>> at
>> org.apache.openjpa.lib.util.J2DoPrivHelper$43.run(J2DoPrivHelper.java:944)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at
>> org.apache.openjpa.meta.AbstractCFMetaDataFactory.parsePersistentTypeNames(AbstractCFMetaDataFactory.java:769)
>> at
>> org.apache.openjpa.meta.AbstractCFMetaDataFactory.getPersistentTypeNames(AbstractCFMetaDataFactory.java:623)
>> ... 44 more
>> 
>> 
>> I don't understand it, but it sounds like this is the part where OpenJPA
>> is loading entity definitions?
>> 
>> I'm surprised as Spring-Data should have handled this with some class-path
>> scanning:
>> 
>>        @Bean
>>    public LocalContainerEntityManagerFactoryBean
>> entityManagerFactory(DataSource dataSource) throws ClassNotFoundException {
>>        LocalContainerEntityManagerFactoryBean entityManagerFactory = new
>> LocalContainerEntityManagerFactoryBean();
>> 
>>        entityManagerFactory.setDataSource(dataSource);
>> 
>> entityManagerFactory.setPackagesToScan("persistence.repository.jpa.entity");
>> 
>> entityManagerFactory.setPersistenceProviderClass(PersistenceProviderImpl.class);
>>        entityManagerFactory.setPersistenceUnitName("redbox");
>> 
>>        {
>>                OpenJpaVendorAdapter vendorAdaptor = new
>> OpenJpaVendorAdapter();
>>                vendorAdaptor.setDatabase(Database.POSTGRESQL);
>>                vendorAdaptor.setGenerateDdl(true);
>> 
>>                entityManagerFactory.setJpaVendorAdapter(vendorAdaptor);
>>        }
>> 
>>        return entityManagerFactory;
>>    }
>> 
>> 
>> I would greatly appreciate any help you can offer me.
>> 
>> Best, Dan.

Reply via email to