The DTD problem is not specific to servicemix nor cxf. It sounds like you are using jaxb2 to parse a log4j configuration file. The xml parser tries to validate the xml and then tries to load the dtd (i suppose it is referenced in your xml). You should remove the log4j dtd from the xml, disable validation, or put a reference to an accessible dtd instead (with an absolute uri).
On 9/28/07, Ryan Moquin <[EMAIL PROTECTED]> wrote: > When I was using Servicemix 3.1, I would specify my classpath dependencies > in the wsdl-first-jsr181-su in the xbean.xml config. That worked fine for > loading the hibernate class and spring class that I'm using. Eventually I > had experimented with using a JNDI datasource in servicemix for my jsr181 > SU, this ended up requiring me to move all of my hibernate dependencies and > spring dependencies and put them directly into the servicemix lib directory > or it wouldn't work. > > I've since switched back to using my own pool, since maintaining versions of > jars that I have to copy manually into service lib is a pain. Since I've > upgraded to the newest Servicemix SNAPSHOT, I now do not have any of my > hibernate or spring dependencies in the Servicemix lib distribution > directory, my CXF services no longer work either. > > So, if you take the cxf-wsdl-first example for instance, if you had added > some spring and hibernate dependencies to it, which su pom.xml would it be a > dependency in? I would have assumed cxf-wsdl-first-cxfse-su, which would be > the equivalent of where I have defined mine, but when I start up servicemix, > I get ClassNotFoundExceptions when I deploy that way, I'm guessing because > the hibernate classes aren't available globally in servicemix, but I didn't > think they had to be. My other CXF service, doesn't use hibernate or spring > for anything, so it doesn't get these errors, but instead, servicemix can't > deploy that SU because it can't find the log4j.dtd, I'm guessing because my > log4j.xml file is local to my cxfse-su service and not on the global > classpath. It looks like it's failing when trying to deploy it to the > Servicemix-wsn-2005 component (I deploys it to the cxfse and servicemix-wsn > as well for notifications... I'm guess that is the correct way to do it, or > does it result in my service deployed twice?) In 3.2, what is the proper > place to put dependencies? > > Both stack traces when I deploy are below: > > org.springframework.beans.factory.BeanCreationException: Error creating bean > with name 'entityManagerFactory' defined in > class path resource [flare-hibernate-spring.xml]: Invocation of init method > failed; nested exception is java.lang.NoSuchM > ethodError: org.objectweb.asm.ClassWriter.<init>(Z)V > Caused by: > java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V > at net.sf.cglib.core.DebuggingClassWriter.<init>( > DebuggingClassWriter.java:47) > at net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter( > DefaultGeneratorStrategy.java:30) > at net.sf.cglib.core.DefaultGeneratorStrategy.generate( > DefaultGeneratorStrategy.java:24) > at net.sf.cglib.core.AbstractClassGenerator.create( > AbstractClassGenerator.java:215) > at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java > :145) > at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117) > at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108) > at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104) > at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69) > at > org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory( > CGLIBLazyInitializer.java:117) > at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate( > CGLIBProxyFactory.java:43) > at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory( > PojoEntityTuplizer.java:162) > at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>( > AbstractEntityTuplizer.java:135) > at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>( > PojoEntityTuplizer.java:55) > at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping > .<init>(EntityEntityModeToTuplizerMapping.java:56) > > at org.hibernate.tuple.entity.EntityMetamodel.<init>( > EntityMetamodel.java:295) > at org.hibernate.persister.entity.AbstractEntityPersister.<init>( > AbstractEntityPersister.java:434) > at org.hibernate.persister.entity.SingleTableEntityPersister.<init>( > SingleTableEntityPersister.java:109) > at org.hibernate.persister.PersisterFactory.createClassPersister( > PersisterFactory.java:55) > at org.hibernate.impl.SessionFactoryImpl.<init>( > SessionFactoryImpl.java:226) > at org.hibernate.cfg.Configuration.buildSessionFactory( > Configuration.java:1294) > at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory( > Ejb3Configuration.java:691) > at > org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory( > HibernatePersistence.java:127) > at > org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory > (LocalConta > inerEntityManagerFactoryBean.java:218) > at > org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet > (AbstractEntityManagerFactoryBe > an.java:251) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods > (AbstractAutowir > eCapableBeanFactory.java:1201) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean > (AbstractAutowireCa > pableBeanFactory.java:1171) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean > (AbstractAutowireCapabl > eBeanFactory.java:425) > at > org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject( > AbstractBeanFactory.java:251) > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton > (DefaultSingletonBeanRegist > ry.java:156) > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean( > AbstractBeanFactory.java:248) > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean( > AbstractBeanFactory.java:160) > at > org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons > (DefaultListableB > eanFactory.java:284) > at > org.springframework.context.support.AbstractApplicationContext.refresh( > AbstractApplicationContext.java:352) > at > org.springframework.context.support.ClassPathXmlApplicationContext.<init>( > ClassPathXmlApplicationContext.java: > 91) > at > org.springframework.context.support.ClassPathXmlApplicationContext.<init>( > ClassPathXmlApplicationContext.java: > 75) > at com.service.hibernate.util.FlareHibernateBeanLocator.locate( > FlareHibernateBeanLocator.java:82) > at > com.service.hibernate.util.FlareHibernateBeanLocator.getProcessInstanceFacade > (FlareHibernateBeanLocator. > java:189) > at com.service.workflow.util.WorkflowUtil.<init>(WorkflowUtil.java > :69) > at com.service.workflow.SystemProcessDefinitionHelper.<init>( > SystemProcessDefinitionHelper.java:49) > at com.service.alert.AlertServiceImpl.<init>(AlertServiceImpl.java > :33) > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at sun.reflect.NativeConstructorAccessorImpl.newInstance( > NativeConstructorAccessorImpl.java:39) > at sun.reflect.DelegatingConstructorAccessorImpl.newInstance( > DelegatingConstructorAccessorImpl.java:27) > at java.lang.reflect.Constructor.newInstance(Constructor.java:494) > at org.springframework.beans.BeanUtils.instantiateClass( > BeanUtils.java:85) > at > org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate > (SimpleInstantiationStrategy. > java:61) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean > (AbstractAutowireC > apableBeanFactory.java:756) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance > (AbstractAutowi > reCapableBeanFactory.java:721) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean > (AbstractAutowireCapabl > eBeanFactory.java:384) > at > org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean > (BeanDefinitionValueReso > lver.java:215) > at > org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary > (BeanDefinitionVa > lueResolver.java:122) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues > (AbstractAutow > ireCapableBeanFactory.java:1099) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean > (AbstractAutowireCapa > bleBeanFactory.java:861) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean > (AbstractAutowireCapabl > eBeanFactory.java:421) > at > org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject( > AbstractBeanFactory.java:251) > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton > (DefaultSingletonBeanRegist > ry.java:156) > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean( > AbstractBeanFactory.java:248) > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean( > AbstractBeanFactory.java:160) > at > org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons > (DefaultListableB > eanFactory.java:287) > at > org.springframework.context.support.AbstractApplicationContext.refresh( > AbstractApplicationContext.java:352) > at org.apache.xbean.server.spring.configuration.SpringConfiguration > .<init>(SpringConfiguration.java:63) > at > org.apache.xbean.server.spring.configuration.SpringConfigurationServiceFactory.createService > (SpringConfigurati > onServiceFactory.java:106) > at org.apache.xbean.kernel.standard.ServiceManager.start( > ServiceManager.java:420) > at org.apache.xbean.kernel.standard.ServiceManager.initialize( > ServiceManager.java:200) > at > org.apache.xbean.kernel.standard.RegistryFutureTask$RegisterCallable.call( > RegistryFutureTask.java:110) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java > :269) > at java.util.concurrent.FutureTask.run(FutureTask.java:123) > at > org.apache.xbean.kernel.standard.ServiceManagerRegistry.registerService( > ServiceManagerRegistry.java:409) > at org.apache.xbean.kernel.standard.StandardKernel.registerService( > StandardKernel.java:220) > at org.apache.xbean.server.spring.loader.SpringLoader.load( > SpringLoader.java:152) > at org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy( > AbstractXBeanDeployer.java:83) > at org.apache.servicemix.common.BaseServiceUnitManager.doDeploy( > BaseServiceUnitManager.java:88) > at org.apache.servicemix.common.BaseServiceUnitManager.deploy( > BaseServiceUnitManager.java:69) > at > org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly( > DeploymentService.java:508) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.checkPendingSAs( > AutoDeploymentService.java:479) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.checkPendingComponents > (AutoDeploymentService.java:53 > 2) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.updateSharedLibrary > (AutoDeploymentService.java:314) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive( > AutoDeploymentService.java:251) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory( > AutoDeploymentService.java:647) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800( > AutoDeploymentService.java:60) > at org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run( > AutoDeploymentService.java:611) > at java.util.TimerThread.mainLoop(Timer.java:512) > at java.util.TimerThread.run(Timer.java:462) > > > > > > java.lang.Exception: <?xml version="1.0" encoding="UTF-8"?> > <jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message" > version="1.0"> > <jbi-task-result> > <frmwk-task-result> > <frmwk-task-result-details> > <task-result-details> > <task-id>deploy</task-id> > <task-result>FAILED</task-result> > <message-type>ERROR</message-type> > </task-result-details> > </frmwk-task-result-details> > </frmwk-task-result> > <component-task-result xmlns=" > http://java.sun.com/xml/ns/jbi/management-message"> > <component-name>servicemix-wsn2005</component-name> > <component-task-result-details> > <task-result-details> > <task-id>deploy</task-id> > <task-result>FAILED</task-result> > <message-type>ERROR</message-type> > <task-status-msg> > <msg-loc-info> > <loc-token/> > <loc-message>Invalid xml</loc-message> > </msg-loc-info> > </task-status-msg> > <exception-info> > <nesting-level>1</nesting-level> > <msg-loc-info> > <loc-token/> > <loc-message>null</loc-message> > <stack-trace><![CDATA[ > javax.xml.bind.UnmarshalException > - with linked exception: > [java.io.FileNotFoundException: C:\servicemix- > 3.2\data\smx\service-assemblies\CommunicationServiceSA\version_1\sus\servic > emix-wsn2005\CommunicationService-jsr181-su\log4j.dtd (The system cannot > find the file specified)] > at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0( > UnmarshallerImpl.java:201) > at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal( > UnmarshallerImpl.java:172) > at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal( > AbstractUnmarshallerImpl.java:137) > at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal( > AbstractUnmarshallerImpl.java:142) > at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal( > AbstractUnmarshallerImpl.java:151) > at org.apache.servicemix.wsn.component.WSNDeployer.createEndpoint( > WSNDeployer.java:106) > at org.apache.servicemix.wsn.component.WSNDeployer.deploy( > WSNDeployer.java:92) > at org.apache.servicemix.common.BaseServiceUnitManager.doDeploy( > BaseServiceUnitManager.java:88) > at org.apache.servicemix.common.BaseServiceUnitManager.deploy( > BaseServiceUnitManager.java:69) > at > org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly( > DeploymentService.java:508) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.checkPendingSAs( > AutoDeploymentService.java:479) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.updateComponent( > AutoDeploymentService.java:290) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive( > AutoDeploymentService.java:249) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory( > AutoDeploymentService.java:647) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800( > AutoDeploymentService.java:60) > at org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run( > AutoDeploymentService.java:611) > at java.util.TimerThread.mainLoop(Timer.java:512) > at java.util.TimerThread.run(Timer.java:462) > Caused by: java.io.FileNotFoundException: C:\servicemix- > 3.2\data\smx\service-assemblies\CommunicationServiceSA\version_1\ > sus\servicemix-wsn2005\CommunicationService-jsr181-su\log4j.dtd (The system > cannot find the file specified) > at java.io.FileInputStream.open(Native Method) > at java.io.FileInputStream.<init>(FileInputStream.java:106) > at java.io.FileInputStream.<init>(FileInputStream.java:66) > at sun.net.www.protocol.file.FileURLConnection.connect( > FileURLConnection.java:70) > at sun.net.www.protocol.file.FileURLConnection.getInputStream( > FileURLConnection.java:161) > at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown > Source) > at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown > Source) > at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown > Source) > at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown > Source) > at > org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown > Source) > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown > Source) > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown > Source) > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown > Source) > at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) > at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) > at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown > Source) > at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0( > UnmarshallerImpl.java:199) > ... 17 more > ]]></stack-trace> > </msg-loc-info> > </exception-info> > </task-result-details> > </component-task-result-details> > </component-task-result> > <component-task-result xmlns=" > http://java.sun.com/xml/ns/jbi/management-message"> > <component-name>servicemix-cxf-bc</component-name> > <component-task-result-details> > <task-result-details> > <task-id>deploy</task-id> > <task-result>FAILED</task-result> > <message-type>ERROR</message-type> > <task-status-msg> > <msg-loc-info> > <loc-token/> > <loc-message>Unable to find suitable deployer for Service Unit > 'CommunicationServiceSU'</loc-message> > </msg-loc-info> > </task-status-msg> > </task-result-details> > </component-task-result-details> > </component-task-result> > </jbi-task-result> > </jbi-task> > > at org.apache.servicemix.jbi.framework.ManagementSupport.failure( > ManagementSupport.java:125) > at org.apache.servicemix.jbi.framework.ManagementSupport.failure( > ManagementSupport.java:111) > at > org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly( > DeploymentService.java:543) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.checkPendingSAs( > AutoDeploymentService.java:479) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.updateComponent( > AutoDeploymentService.java:290) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive( > AutoDeploymentService.java:249) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory( > AutoDeploymentService.java:647) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800( > AutoDeploymentService.java:60) > at org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run( > AutoDeploymentService.java:611) > at java.util.TimerThread.mainLoop(Timer.java:512) > at java.util.TimerThread.run(Timer.java:462) > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/
