Hi Gert, I see in the petclinic example of spring that they use their "proprietary tag" :
Import-Bundle: com.springsource.org.hibernate;version="[3.2.6.ga,3.2.6.ga]";import-scope:=application to work with Hibernate from Spring. Do you know if what is done behind Import-bundle is equivalent to Import-Package : * or something like that ? Regards, Charles cmoulliard wrote: > > Gert, > > I have also tested this option but nothing changed : > > Import-Package = > com.sun.jdi;resolution:=optional,com.sun.jdi.connect;resolution:=optional,com.sun.jdi.event;resolution:=optional,com.sun.jdi.request;resolution:=optional > ,org.hibernate.proxy > > Remark : in the hibernate bundle, the class javassist.util.proxy is well > imported > > Regards, > > Charles > > > Gert Vanthienen wrote: >> >> Charles, >> >> Just for testing purposes, to see if we're on the right track... could >> you add an explicit import for the org.hibernate.proxy package to your >> javassist bundle? >> >> Regards, >> >> Gert Vanthienen >> ------------------------ >> Open Source SOA: http://fusesource.com >> Blog: http://gertvanthienen.blogspot.com/ >> >> >> >> 2009/3/24 cmoulliard <[email protected]>: >>> >>> DynamicImport-Package does not change anything. The error is still there >>> even >>> If I add the following line to the MANIFEST file of javassist : >>> >>> DynamicImport-Package: org.hibernate.proxy.*,* >>> >>> Regards >>> >>> >>> cmoulliard wrote: >>>> >>>> No Gert. >>>> >>>> Here is what the bundle export : >>>> >>>> Javassist Java Programming Assistant (117) >>>> ------------------------------------------ >>>> Specification-Title = Javassist >>>> Main-Class = javassist.CtClass >>>> Specification-Version = 3.9.0.GA >>>> Specification-Vendor = Shigeru Chiba, Tokyo Institute of Technology >>>> Export-Package = >>>> javassist;version="3.9.0.GA";uses:="javassist.bytecode,javassist.bytecode.annotation,javassist.compiler,javassist.compiler.ast,javassist.expr",javassist. >>>> bytecode;version="3.9.0.GA";uses:="javassist,javassist.bytecode.annotation",javassist.bytecode.analysis;version="3.9.0.GA";uses:="javassist,javassist.bytecode",javassist. >>>> bytecode.annotation;version="3.9.0.GA";uses:="javassist,javassist.bytecode",javassist.bytecode.stackmap;version="3.9.0.GA";uses:="javassist,javassist.bytecode",javassist. >>>> compiler;version="3.9.0.GA";uses:="javassist,javassist.bytecode,javassist.compiler.ast",javassist.compiler.ast;version="3.9.0.GA";uses:="javassist,javassist.compiler",jav >>>> assist.convert;version="3.9.0.GA";uses:="javassist,javassist.bytecode",javassist.expr;version="3.9.0.GA";uses:="javassist,javassist.bytecode,javassist.compiler,javassist. >>>> compiler.ast",javassist.runtime;version="3.9.0.GA",javassist.scopedpool;version="3.9.0.GA";uses:="javassist",javassist.tools;version="3.9.0.GA",javassist.tools.reflect;ve >>>> rsion="3.9.0.GA";uses:="javassist",javassist.tools.rmi;version="3.9.0.GA";uses:="javassist,javassist.tools.web",javassist.tools.web;version="3.9.0.GA";uses:="javassist",j >>>> avassist.util;version="3.9.0.GA";uses:="com.sun.jdi.connect,com.sun.jdi.event,com.sun.jdi.request",javassist.util.proxy;version="3.9.0.GA";uses:="javassist,javassist.byte >>>> code" >>>> Bundle-Classpath = . >>>> Bundle-Version = 3.9.0.GA >>>> Created-By = Shigeru Chiba, Tokyo Institute of Technology >>>> Bundle-ManifestVersion = 2 >>>> Manifest-Version = 1.0 >>>> Bundle-Vendor = SpringSource >>>> Bundle-Name = Javassist Java Programming Assistant >>>> Ant-Version = Apache Ant 1.7.0 >>>> Import-Package = >>>> com.sun.jdi;resolution:=optional,com.sun.jdi.connect;resolution:=optional,com.sun.jdi.event;resolution:=optional,com.sun.jdi.request;resolution:=optional >>>> >>>> Bundle-SymbolicName = com.springsource.javassist >>>> >>>> I will modify the manifest in order to add Dynamic-Import : * >>>> >>>> Regards, >>>> >>>> >>>> Gert Vanthienen wrote: >>>>> >>>>> Charles, >>>>> >>>>> Do you have a Dynamic-Import or something in the Javassist bundle that >>>>> allow it to use the exported class? >>>>> >>>>> Regards, >>>>> >>>>> Gert Vanthienen >>>>> ------------------------ >>>>> Open Source SOA: http://fusesource.com >>>>> Blog: http://gertvanthienen.blogspot.com/ >>>>> >>>>> >>>>> >>>>> 2009/3/24 cmoulliard <[email protected]>: >>>>>> >>>>>> Apparently "mappingDirectoryLocations" does not work when the >>>>>> configuration >>>>>> files are packages in a jar of a bundle separately. >>>>>> >>>>>> Nevertheless, mappingLocations works like this : >>>>>> >>>>>> <property name="mappingLocations"> >>>>>> <list> >>>>>> >>>>>> <value>classpath*:META-INF/org/apache/camel/example/reportincident/model/*.hbm.xml</value> >>>>>> </list> >>>>>> </property> >>>>>> >>>>>> Unfortunalely, I have the following error now : >>>>>> >>>>>> Is it a bug in javassist (3.9.0.GA) who cannot load the >>>>>> org.hibernate.proxy.HibernateProxy class or a issue with felix >>>>>> classloading >>>>>> ? >>>>>> >>>>>> remark : org.apache.proxy package is well defined in my MANIFEST file >>>>>> (and >>>>>> of course expeorted by Hibernate 3.3.1.GA bundle) >>>>>> >>>>>> {code} >>>>>> Caused by: java.lang.RuntimeException: by >>>>>> java.lang.NoClassDefFoundError: >>>>>> org/hibernate/proxy/HibernateProxy >>>>>> at >>>>>> javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:174) >>>>>> at >>>>>> org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:162) >>>>>> ... 58 more >>>>>> Caused by: javassist.CannotCompileException: by >>>>>> java.lang.NoClassDefFoundError: org/hibernate/proxy/HibernateProxy >>>>>> at >>>>>> javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:167) >>>>>> at >>>>>> javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:170) >>>>>> ... 59 more >>>>>> Caused by: java.lang.NoClassDefFoundError: >>>>>> org/hibernate/proxy/HibernateProxy >>>>>> at java.lang.ClassLoader.defineClass1(Native Method) >>>>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:621) >>>>>> 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 >>>>>> javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:159) >>>>>> ... 60 more >>>>>> Caused by: java.lang.ClassNotFoundException: >>>>>> org.hibernate.proxy.HibernateProxy >>>>>> at >>>>>> org.apache.felix.framework.searchpolicy.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:558) >>>>>> at >>>>>> org.apache.felix.framework.searchpolicy.ModuleImpl.access$100(ModuleImpl.java:59) >>>>>> at >>>>>> org.apache.felix.framework.searchpolicy.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1427) >>>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:252) >>>>>> at >>>>>> java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) >>>>>> {code} >>>>>> >>>>>> cmoulliard wrote: >>>>>>> >>>>>>> Gert, >>>>>>> >>>>>>> Nobody from Spring-Hibernate has provided a feedback now. From my >>>>>>> point >>>>>>> of >>>>>>> view after digging the question since last friday, I'm convinced >>>>>>> that >>>>>>> the >>>>>>> issue is not at all related to SMX4. I have created a ticket at >>>>>>> Spring >>>>>>> DM. >>>>>>> >>>>>>> I have been able to find a workaround using mappingResources instead >>>>>>> of >>>>>>> mappingLocations or mappingDirectoryLocations but this means that >>>>>>> the >>>>>>> hbm.xml files (this is what spring team has done in their petclinic >>>>>>> example) must be put in the same bundle where the >>>>>>> org.springframework.orm.hibernate3.LocalSessionFactoryBean is >>>>>>> instantiated >>>>>>> : >>>>>>> >>>>>>> <bean id="sessionFactory" >>>>>>> class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> >>>>>>> >>>>>>> <!-- Classloading does not work under OSGI --> >>>>>>> <property name="mappingResources"> >>>>>>> <list> >>>>>>> <value>Incident.hbm.xml</value> >>>>>>> </list> >>>>>>> </property> >>>>>>> >>>>>>> For the moment, this is not blocking. So, I can continue to work and >>>>>>> I >>>>>>> have been able to integrate camel, cxf, spring and Hibernate (using >>>>>>> commons-dbcp and mysql) top of SMX4. I will start to write the >>>>>>> second >>>>>>> of >>>>>>> my tutorial with the material that I have. >>>>>>> >>>>>>> Remark : You are right, the problem comes from a classloading issue >>>>>>> with >>>>>>> Hibernate or maybe between the name stored in the EntityPersister >>>>>>> object >>>>>>> (package name + class vs class name) >>>>>>> >>>>>>> Regards, >>>>>>> >>>>>>> Charles >>>>>>> >>>>>>> >>>>>>> >>>>>>> Gert Vanthienen wrote: >>>>>>>> >>>>>>>> Charles, >>>>>>>> >>>>>>>> Did you get an answer for this on the Spring-Hibernate forum or do >>>>>>>> you >>>>>>>> rather think it's more OSGi/ServiceMix Kernel related? >>>>>>>> From our angle, the most likely explanation would be a classloader >>>>>>>> mismatch or a missing import (probably dynamic-import) from the >>>>>>>> hibernate bundle to find the hbm files or link them to the correct >>>>>>>> class. What imports/exports are you using? >>>>>>>> >>>>>>>> Regards, >>>>>>>> >>>>>>>> Gert Vanthienen >>>>>>>> ------------------------ >>>>>>>> Open Source SOA: http://fusesource.com >>>>>>>> Blog: http://gertvanthienen.blogspot.com/ >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> 2009/3/20 cmoulliard <[email protected]>: >>>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> I don't if this is the good forum to post this issue. If this is >>>>>>>>> not >>>>>>>>> the >>>>>>>>> case, I will post my topic on spring-hibernate forum >>>>>>>>> >>>>>>>>> My issue is the following, Hibernate claims that entity Incident >>>>>>>>> does >>>>>>>>> not >>>>>>>>> exist. >>>>>>>>> >>>>>>>>> s...@root:osgi> org.hibernate.MappingException: Unknown entity: >>>>>>>>> org.apache.camel.example.reportincident.model.Incident >>>>>>>>> at >>>>>>>>> org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:580) >>>>>>>>> at >>>>>>>>> org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1365) >>>>>>>>> at >>>>>>>>> org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:203) >>>>>>>>> at >>>>>>>>> org.hibernate.event.def.AbstractSaveEventListener.getEntityState(AbstractSaveEventListener.java:535) >>>>>>>>> at >>>>>>>>> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:103) >>>>>>>>> at >>>>>>>>> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93) >>>>>>>>> at >>>>>>>>> org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:534) >>>>>>>>> at >>>>>>>>> org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:526) >>>>>>>>> at >>>>>>>>> org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:522) >>>>>>>>> at >>>>>>>>> org.apache.camel.example.reportincident.dao.impl.IncidentDAOImpl.saveIncident(IncidentDAOImpl.java:101) >>>>>>>>> >>>>>>>>> This error occurs when Hibernate does not find or load the file >>>>>>>>> hbm.xml >>>>>>>>> >>>>>>>>> Here is my config : >>>>>>>>> >>>>>>>>> As you can see I have used mappingLocations instead of >>>>>>>>> mappingResources >>>>>>>>> because they was an error during the load of the files with >>>>>>>>> mappingResources >>>>>>>>> >>>>>>>>> <!-- Hibernate SessionFactory Definition --> >>>>>>>>> <bean id="sessionFactory" >>>>>>>>> class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> >>>>>>>>> >>>>>>>>> <!-- Classloading does not work under OSGI --> >>>>>>>>> <property name="mappingResources"> >>>>>>>>> <list> >>>>>>>>> >>>>>>>>> <value>META-INF/org/apache/camel/example/reportincident/model/Incident.hbm.xml</value> >>>>>>>>> </list> >>>>>>>>> </property> >>>>>>>>> >>>>>>>>> <!-- see here >>>>>>>>> >>>>>>>>> http://www.carbonfive.com/community/archives/2007/05/using_classpath.html >>>>>>>>> and >>>>>>>>> >>>>>>>>> http://jira.springframework.org/browse/SPR-3965 >>>>>>>>> for more info about the classloading issue on >>>>>>>>> OSGI >>>>>>>>> --> >>>>>>>>> <property name="mappingLocations"> >>>>>>>>> <list> >>>>>>>>> >>>>>>>>> <value>classpath*:META-INF/org/apache/camel/example/reportincident/model/Incident.hbm.xml</value> >>>>>>>>> </list> >>>>>>>>> </property> >>>>>>>>> >>>>>>>>> >>>>>>>>> Any idea ? >>>>>>>>> >>>>>>>>> Regards >>>>>>>>> >>>>>>>>> ----- >>>>>>>>> Charles Moulliard >>>>>>>>> SOA Architect >>>>>>>>> >>>>>>>>> My Blog : http://cmoulliard.blogspot.com/ >>>>>>>>> http://cmoulliard.blogspot.com/ >>>>>>>>> -- >>>>>>>>> View this message in context: >>>>>>>>> http://www.nabble.com/Issue-with-Hibernate-and-hbm.xml-files-%28SMX4%29-tp22623666p22623666.html >>>>>>>>> Sent from the ServiceMix - User mailing list archive at >>>>>>>>> Nabble.com. >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> ----- >>>>>>>> --- >>>>>>>> Gert Vanthienen >>>>>>>> http://gertvanthienen.blogspot.com >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> ----- >>>>>> Charles Moulliard >>>>>> SOA Architect >>>>>> >>>>>> My Blog : http://cmoulliard.blogspot.com/ >>>>>> http://cmoulliard.blogspot.com/ >>>>>> -- >>>>>> View this message in context: >>>>>> http://www.nabble.com/Issue-with-Hibernate-and-hbm.xml-files-%28SMX4%29-tp22623666p22676649.html >>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>>>>> >>>>>> >>>>> >>>>> >>>>> ----- >>>>> --- >>>>> Gert Vanthienen >>>>> http://gertvanthienen.blogspot.com >>>>> >>>> >>>> >>> >>> >>> ----- >>> Charles Moulliard >>> SOA Architect >>> >>> My Blog : http://cmoulliard.blogspot.com/ >>> http://cmoulliard.blogspot.com/ >>> -- >>> View this message in context: >>> http://www.nabble.com/Issue-with-Hibernate-and-hbm.xml-files-%28SMX4%29-tp22623666p22677738.html >>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>> >>> >> >> >> ----- >> --- >> Gert Vanthienen >> http://gertvanthienen.blogspot.com >> > > ----- Charles Moulliard SOA Architect My Blog : http://cmoulliard.blogspot.com/ http://cmoulliard.blogspot.com/ -- View this message in context: http://www.nabble.com/Issue-with-Hibernate-and-hbm.xml-files-%28SMX4%29-tp22623666p22680637.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
