FYI, ServiceMix 3.2.1 does not use OSGi at all, this is only available in ServiceMix 4. Anyway, this is a known problem, but should not prevent you to unzip the distribution and use it.
On Wed, Apr 30, 2008 at 11:50 PM, MeBigFatGuy <[EMAIL PROTECTED]> wrote: > > 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. > > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/
