[
https://issues.apache.org/activemq/browse/SMXCOMP-688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=61402#action_61402
]
Andrzej Kulakowski edited comment on SMXCOMP-688 at 8/25/10 6:58 AM:
---------------------------------------------------------------------
Thanks again Freeman,
I figure I have to implement my own bean class (of type org.apache.cxf.Bus)
and load it with providedBus on the client side similar to an interceptor. I am
referring to this documentation here [1], are there any other nuances I should
know of about at this point? I am rather fresh at this so any directions would
be appreciated before I start delving into the deep waters :)
Though I am curious what will happen to busCfg attribute in the (near) future -
will it be fixed or removed altogether so I can permanently forget about it?
[1] http://cxf.apache.org/docs/bus-configuration.html
was (Author: zigfryd):
Thanks again Freeman,
I figure I have to implement my own bean class and load it with providedBus on
the client side similar to an interceptor. I am referring to this documentation
here [1], are there any other nuances I should know of about at this point? I
am rather fresh at this so any directions would be appreciated before I start
delving into the deep waters :)
Though I am curious what will happen to busCfg attribute in the (near) future -
will it be fixed or removed altogether so I can permanently forget about it?
[1] http://cxf.apache.org/docs/bus-configuration.html
> servicemix-cxf-bc endpoint cannot load busCfg file when packaged as an OSGi
> bundle
> ----------------------------------------------------------------------------------
>
> Key: SMXCOMP-688
> URL: https://issues.apache.org/activemq/browse/SMXCOMP-688
> Project: ServiceMix Components
> Issue Type: Bug
> Components: servicemix-cxf-bc
> Affects Versions: servicemix-cxf-bc-2009.02
> Environment: apache-servicemix-4.1.0-SNAPSHOT build 164
> OSX
> java version "1.6.0_17"
> Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025)
> Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)
> Reporter: Paul Mietz Egli
> Assignee: Freeman Fang
> Fix For: servicemix-cxf-bc-2010.01
>
> Attachments: smx4-bus-config.tar.gz, smx4-provided-bus.diff
>
>
> I've been attempting to set up CXF to use digest authentication by specifying
> a value for the busCfg attribute of a cxfbc:provider endpoint. When I use a
> relative file path like the example code, I get a "Failed to load
> configuration com/example/cxf/bus.xml", which I more or less would expect.
> Using a "classpath:" prefix for the attribute value, I this
> IllegalArgumentException:
> Caused by: java.lang.IllegalArgumentException: name
> at sun.misc.URLClassPath$Loader.findResource(URLClassPath.java:458)
> at sun.misc.URLClassPath.findResource(URLClassPath.java:145)
> at java.net.URLClassLoader$2.run(URLClassLoader.java:362)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findResource(URLClassLoader.java:359)
> at java.lang.ClassLoader.getResource(ClassLoader.java:1040)
> at
> org.springframework.osgi.context.internal.classloader.ChainedClassLoader.doGetResource(ChainedClassLoader.java:128)
> at
> org.springframework.osgi.context.internal.classloader.ChainedClassLoader.getResource(ChainedClassLoader.java:110)
> at
> org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:160)
> at
> org.springframework.core.io.ClassPathResource.getFile(ClassPathResource.java:175)
> at
> org.springframework.core.io.AbstractResource.exists(AbstractResource.java:51)
> at
> org.apache.cxf.bus.spring.BusApplicationContext.findResource(BusApplicationContext.java:196)
> at
> org.apache.cxf.bus.spring.BusApplicationContext.getConfigResources(BusApplicationContext.java:144)
> at
> org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:107)
> at
> org.apache.cxf.bus.spring.BusApplicationContext.loadBeanDefinitions(BusApplicationContext.java:262)
> at
> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
> at
> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422)
> at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
> at
> org.apache.cxf.bus.spring.BusApplicationContext.<init>(BusApplicationContext.java:91)
> at
> org.apache.cxf.bus.spring.SpringBusFactory.createApplicationContext(SpringBusFactory.java:102)
> at
> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:93)
> at
> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:88)
> at
> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:64)
> at
> org.apache.servicemix.cxfbc.CxfBcProvider.getBus(CxfBcProvider.java:601)
> at
> org.apache.servicemix.cxfbc.CxfBcProvider.validate(CxfBcProvider.java:422)
> ... 41 more
> Using a debugger, I can see that the ChainedClassLoader contains the
> following objects:
> [BundleDelegatingClassLoader for [ServiceMix :: CXF Binding Component
> (servicemix-cxf-bc)], 37.0, 40.0, 42.0, 69.0]
> where 37 is spring-aop, 40 is cglib, 42 is spring-osgi-core, and 69 is
> servicemix-common. There is no bundle classloader for my bundle, so even
> though I've exported com/example/cxf, I wouldn't expect the
> ChainedClassLoader to find it.
> It seems to me that we have a chicken-and-egg problem: we need the bus to
> validate the component, yet we can't load the bus configuration from our
> bundle when the component is being validated. I thought about attaching a
> fragment bundle to the CXF binding component, but I'm not sure if that would
> work and it seems like a lot of trouble.
> One way around the issue would be to create a means of setting the bus object
> using Spring, like Camel's CXF component. I'm attaching a patch for
> consideration which adds a setBus() method to CxfBcProvider and modifies
> getBus() to return the object from setBus() if any. With these changes, I'm
> able to configure my CXF bus for Digest auth and provide it to the endpoint.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.