I tried downloading the servicemix 3.2.1 sources zip from here http://servicemix.apache.org/download.html, but got a zip that was corrupt with many error messages like:
The following invalid filename was encountered in the archive: "apache-servicemix-3.2.1\src\core\servicemix-jbl\file:\home\gnodet\public_html\servicemix-3.2.1\site\people.apache.org\www\servicemix.apache.org\dist\servicemix-3.2.1\site\parent\core\servicemix-jbl\apidocs\index.html" dkulp wrote: > > On Wednesday 30 April 2008, Dave Brosius wrote: >> Thank you very much. Is the META-INF/cxf/osgi directory new? as of >> 2.0.5 it doesn't exist. > > That's a file that's over in the servicemix repo someplace that defines > an http transport for the CXF runtime that uses the osgi servlet instead > of our embedded jetty. It should be moved over to CXF at some point, > but it hasn't been yet. > > Dan > > >> >> -----Original Message----- >> From: Guillaume Nodet <[EMAIL PROTECTED]> >> Sent: Wednesday, April 30, 2008 10:37am >> To: [email protected] >> Subject: Re: cxf Autowiring in OSGI >> >> Here's what we came up with so far: >> >> http://servicemix.apache.org/SMX4/cxf-examples.html#CXFexamples-Inside >>theexample >> >> if you really want to use the non spring configuration, the best way >> to avoid classloader issues may be to embed cxf and its dependencies >> inside a single bundle along with your services. >> >> On Wed, Apr 30, 2008 at 4:06 PM, Daniel Kulp <[EMAIL PROTECTED]> wrote: >> > Dave, >> > >> > >> > Guillaume Nodet definitely has more experience with the OSGi stuff. >> > In generaly, we've seen success using the Spring Dynamic Module >> > stuff with OSGi as you can import the cxf stuff you need in the >> > spring module and the bus gets wired up correctly. (in 2.0.6/2.1, >> > we even added a cxf-all.xml that you can import to grab everything, >> > but thats probably more than you need) >> > >> > I'm not sure if anyone not using spring-dm has gotten anything to >> > work. One option MAY be to call SpringBusFactory.createBus() >> > yourself first to cause the Bus to be created with spring. Not sure >> > if that works though as I'm not sure if it will find all the spring >> > config files or not. >> > >> > Dan >> > >> > On Tuesday 29 April 2008, Dave Brosius wrote: >> > > OK, this code is failing in OSGI >> > > >> > > BusFactory.getBusFactoryClass >> > > >> > > specifically, it tries to load the file >> > > >> > > META-INF/services/org.apache.cxf.bus.factory >> > > >> > > and fails. >> > > >> > > [CODE] >> > > private static String getBusFactoryClass(ClassLoader classLoader) >> > > { >> > > >> > > String busFactoryClass = null; >> > > String busFactoryCondition = null; >> > > >> > > // next check system properties >> > > busFactoryClass = >> > > System.getProperty(BusFactory.BUS_FACTORY_PROPERTY_NAME); if >> > > (isValidBusFactoryClass(busFactoryClass)) { >> > > return busFactoryClass; >> > > } >> > > >> > > try { >> > > // next, check for the services stuff in the jar file >> > > String serviceId = "META-INF/services/" + >> > > BusFactory.BUS_FACTORY_PROPERTY_NAME; InputStream is = null; >> > > >> > > if (classLoader == null) { >> > > classLoader = >> > > Thread.currentThread().getContextClassLoader(); } >> > > >> > > if (classLoader == null) { >> > > is = >> > > ClassLoader.getSystemResourceAsStream(serviceId); } else { >> > > is = classLoader.getResourceAsStream(serviceId); >> > > } >> > > if (is != null) { >> > > BufferedReader rd = new BufferedReader(new >> > > InputStreamReader(is, "UTF-8")); busFactoryClass = rd.readLine(); >> > > busFactoryCondition = rd.readLine(); >> > > rd.close(); >> > > } >> > > if (isValidBusFactoryClass(busFactoryClass)) { >> > > if (busFactoryCondition != null) { >> > > try { >> > > >> > > classLoader.loadClass(busFactoryCondition); return >> > > busFactoryClass; >> > > } catch (ClassNotFoundException e) { >> > > return DEFAULT_BUS_FACTORY; >> > > } >> > > } else { >> > > return busFactoryClass; >> > > } >> > > } >> > > >> > > // otherwise use default >> > > busFactoryClass = BusFactory.DEFAULT_BUS_FACTORY; >> > > return busFactoryClass; >> > > } catch (Exception ex) { >> > > LogUtils.log(LOG, Level.SEVERE, >> > > "FAILED_TO_DETERMINE_BUS_FACTORY_EXC", ex); } >> > > return busFactoryClass; >> > > } >> > > [/CODE] >> > > >> > > >> > > -----Original Message----- >> > > From: Dave Brosius <[EMAIL PROTECTED]> >> > > Sent: Tuesday, April 29, 2008 6:27pm >> > > To: [email protected] >> > > Cc: [EMAIL PROTECTED] >> > > Subject: RE: cxf Autowiring in OSGI >> > > >> > > Here's the difference: Can anyone help me with why this is so? >> > > >> > > In OSGI, createBus creates a CXFBusFactory >> > > >> > > Thread [SpringOsgiExtenderThread-2] (Suspended) >> > > CXFBusFactory.createBus() line: 32 >> > > BusFactory.getDefaultBus(boolean) line: 69 >> > > BusFactory.getThreadDefaultBus(boolean) line: 106 >> > > BusFactory.getThreadDefaultBus() line: 97 >> > > JaxWsServerFactoryBean(AbstractEndpointFactory).getBus() >> > > line: 73 >> > > JaxWsServerFactoryBean(AbstractWSDLBasedEndpointFactory).initiali >> > >zeSe rviceFactory() line: 143 >> > > JaxWsServerFactoryBean(AbstractWSDLBasedEndpointFactory).createEn >> > >dpoin t() line: 73 >> > > JaxWsServerFactoryBean(ServerFactoryBean).create() line: 113 >> > > JaxWsServerFactoryBean.create() line: 160 >> > > EchoInstaller.init() line: 23 >> > > NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) >> > > line: not available [native method] >> > > NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 >> > > DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: >> > > 25 Method.invoke(Object, Object...) line: 585 >> > > >> > > DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).in >> > >voke CustomInitMethod(String, Object, String, boolean) line: 1378 >> > > DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).in >> > >vokeI nitMethods(String, Object, RootBeanDefinition) line: 1339 >> > > DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).in >> > >itial izeBean(String, Object, RootBeanDefinition) line: 1299 >> > > DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).do >> > >Creat eBean(String, RootBeanDefinition, Object[]) line: 463 >> > > AbstractAutowireCapableBeanFactory$1.run() line: 404 >> > > AccessController.doPrivileged(PrivilegedAction<T>) line: >> > > not available [native method] >> > > DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).cr >> > >eateB ean(String, RootBeanDefinition, Object[]) line: 375 >> > > AbstractBeanFactory$1.getObject() line: 263 >> > > >> > > DefaultListableBeanFactory(DefaultSingletonBeanRegistry).getSingl >> > >eton (String, ObjectFactory) line: 170 >> > > DefaultListableBeanFactory(AbstractBeanFactory).doGetBean(String, >> > > Class, Object[], boolean) line: 260 >> > > DefaultListableBeanFactory(AbstractBeanFactory).getBean(String, >> > > Class, Object[]) line: 184 >> > > DefaultListableBeanFactory(AbstractBeanFactory).getBean(String) >> > > line: 163 DefaultListableBeanFactory.preInstantiateSingletons() >> > > line: 430 >> > > OsgiBundleXmlApplicationContext(AbstractApplicationContext).finis >> > >hBean FactoryInitialization(ConfigurableListableBeanFactory) line: >> > > 729 >> > > OsgiBundleXmlApplicationContext(AbstractDelegatedExecutionApplica >> > >tionC ontext).completeRefresh() line: 268 >> > > DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.ru >> > >n() line: 142 >> > > DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.ru >> > >n() line: 142 Thread.run() line: 595 >> > > >> > > >> > > In standard mode, createBus creates a SpringBusFactory >> > > >> > > Thread [main] (Suspended (breakpoint at line 54 in >> > > SpringBusFactory)) SpringBusFactory.createBus() line: 54 >> > > BusFactory.getDefaultBus(boolean) line: 69 >> > > BusFactory.getThreadDefaultBus(boolean) line: 106 >> > > BusFactory.getThreadDefaultBus() line: 97 >> > > JaxWsServerFactoryBean(AbstractEndpointFactory).getBus() >> > > line: 73 >> > > JaxWsServerFactoryBean(AbstractWSDLBasedEndpointFactory).initiali >> > >zeSe rviceFactory() line: 143 >> > > JaxWsServerFactoryBean(ServerFactoryBean).initializeServiceFactor >> > >y() line: 149 >> > > JaxWsServerFactoryBean(AbstractWSDLBasedEndpointFactory).createEn >> > >dpoin t() line: 73 >> > > JaxWsServerFactoryBean(ServerFactoryBean).create() line: 113 >> > > JaxWsServerFactoryBean.create() line: 160 >> > > Main.main(String[]) line: 19 >> > > >> > > >> > > >> > > >> > > -----Original Message----- >> > > From: Dave Brosius <[EMAIL PROTECTED]> >> > > Sent: Tuesday, April 29, 2008 6:15pm >> > > To: [email protected] >> > > Cc: [EMAIL PROTECTED] >> > > Subject: cxf Autowiring in OSGI >> > > >> > > I am having trouble getting cxf to work in osgi. The problem is >> > > that it appears that there are no factories registered for the >> > > various namespaces needed such as >> > > http://schemas.xmlsoap.org/soap/http >> > > >> > > >> > > When run in normal mode (not osgi), I see these namespaces being >> > > registered (in the below stack trace). In OSGI this isn't >> > > happening and so it fails in >> > > JaxWsServerFactoryBean.createBindingInfo. Does anyone have any >> > > ideas about how to fix this? >> > > >> > > >> > > [CODE] >> > > Thread [main] (Suspended (breakpoint at line 79 in >> > > DestinationFactoryManagerImpl)) >> > > DestinationFactoryManagerImpl.registerDestinationFactory(String, >> > > DestinationFactory) line: 79 >> > > JettyHTTPTransportFactory.finalizeConfig() line: 68 >> > > NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) >> > > line: not available [native method] >> > > NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 >> > > DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: >> > > 25 Method.invoke(Object, Object...) line: 585 >> > > ResourceInjector.invokePostConstruct() line: 305 >> > > ResourceInjector.construct(Object) line: 86 >> > > >> > > Jsr250BeanPostProcessor.postProcessAfterInitialization(Object, >> > > String) line: 58 >> > > DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).ap >> > >plyBe anPostProcessorsAfterInitialization(Object, String) line: >> > > 357 >> > > DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).in >> > >itial izeBean(String, Object, RootBeanDefinition) line: 1308 >> > > DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).do >> > >Creat eBean(String, RootBeanDefinition, Object[]) line: 463 >> > > AbstractAutowireCapableBeanFactory$1.run() line: 404 >> > > AccessController.doPrivileged(PrivilegedAction<T>) line: >> > > not available [native method] >> > > DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).cr >> > >eateB >> > > >> > >ean(String, RootBeanDefinition, Object[]) line: 375 >> > > >> > > AbstractBeanFactory$1.getObject() line: 263 >> > > >> > > DefaultListableBeanFactory(DefaultSingletonBeanRegistry).getSingl >> > >eton (String, ObjectFactory) line: 170 >> > > DefaultListableBeanFactory(AbstractBeanFactory).doGetBean(String, >> > > Class, Object[], boolean) line: 260 >> > > DefaultListableBeanFactory(AbstractBeanFactory).getBean(String, >> > > Class, Object[]) line: 184 >> > > DefaultListableBeanFactory(AbstractBeanFactory).getBean(String) >> > > line: 163 DefaultListableBeanFactory.preInstantiateSingletons() >> > > line: 430 >> > > BusApplicationContext(AbstractApplicationContext).finishBeanFacto >> > >ryIni tialization(ConfigurableListableBeanFactory) line: 729 >> > > BusApplicationContext(AbstractApplicationContext).refresh() line: >> > > 381 BusApplicationContext.<init>(String[], boolean, >> > > ApplicationContext) line: 86 SpringBusFactory.createBus(String[], >> > > boolean) line: 93 SpringBusFactory.createBus(String, boolean) >> > > line: 87 SpringBusFactory.createBus(String) line: 65 >> > > SpringBusFactory.createBus() line: 54 >> > > BusFactory.getDefaultBus(boolean) line: 69 >> > > BusFactory.getThreadDefaultBus(boolean) line: 106 >> > > BusFactory.getThreadDefaultBus() line: 97 >> > > JaxWsServerFactoryBean(AbstractEndpointFactory).getBus() >> > > line: 73 >> > > JaxWsServerFactoryBean(AbstractWSDLBasedEndpointFactory).initiali >> > >zeSe >> > > >> > >rviceFactory() line: 143 >> > > >> > > JaxWsServerFactoryBean(ServerFactoryBean).initializeServiceFactor >> > >y() line: 149 >> > > JaxWsServerFactoryBean(AbstractWSDLBasedEndpointFactory).createEn >> > >dpoin >> > > >> > >t() line: 73 JaxWsServerFactoryBean(ServerFactoryBean).create() > line: >> > > 113 JaxWsServerFactoryBean.create() line: 160 >> > > Main.main(String[]) line: 19 >> > > [/CODE] >> > >> > -- >> > J. Daniel Kulp >> > Principal Engineer, IONA >> > [EMAIL PROTECTED] >> > http://www.dankulp.com/blog > > > > -- > J. Daniel Kulp > Principal Engineer, IONA > [EMAIL PROTECTED] > http://www.dankulp.com/blog > > -- View this message in context: http://www.nabble.com/cxf-Autowiring-in-OSGI-tp16971724p16992318.html Sent from the cxf-user mailing list archive at Nabble.com.
