I suspect more something around Aries Blueprint: in order to fix a
couple of issues on Blueprint, we upgraded to a new version of Aries
Blueprint.
I gonna take a look.
Regards
JB
On 04/02/2013 01:17 PM, Bengt Rodehav wrote:
I read the blog but it didn't go into details regarding how the
implementation classes are found - I guess I'll have to look in the code.
One observation regarding my problem: What gives me an exception is when
blueprint attempts to instantiate my class. In my class constructor I
try to create the web service proxy. I did try to import the
org.apache.cxf.jaxws.spi package to the bundle that contains the class
that cannot be instantiated. I can see in runtime that the bundle does
indeed import the org.apache.cxf.jaxws.spi package from the
cxf-rt-frontend bundle. But I still get the exception indicating that it
cannot find the org.apache.cxf.jaxws.spi.ProviderImpl class.
Thus, putting the ProviderImpl class in my bundle's classpath doesn't
help. It seems like it has to be in the system bundle's classpath. I
really don't know how that mechanism is supposed to work - but it did
work in Karaf 2.3.0. Does the new blueprint version do some classloading
magic?
/Bengt
2013/4/2 Bengt Rodehav <be...@rodehav.com <mailto:be...@rodehav.com>>
Thanks, will read the blog.
2013/4/2 Freeman Fang <freeman.f...@gmail.com
<mailto:freeman.f...@gmail.com>>
Hi,
Good question, yeah, the traditional JAVA SPI mechanism
generally doesn't work in OSGi container.
So Servicemix Specs project[1] use "OSGi locator" to resolve
this problem, Guillaume has a blog about it years ago[2]
[1]https://svn.apache.org/repos/asf/servicemix/smx4/specs/trunk/
[2]http://gnodet.blogspot.com/2008/05/jee-specs-in-osgi.html
-------------
Freeman(Yue) Fang
Red Hat, Inc.
FuseSource is now part of Red Hat
Web: http://fusesource.com | http://www.redhat.com/
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: @Freeman小屋
On 2013-4-2, at 下午5:07, Bengt Rodehav wrote:
I'll see if I can get a test case done for this although it
might take a while. Meanwhile, can you explain what mechanism
is used for resolving the implementation classes. I mean, how
is the system bundle supposed to resolve a class that resides
in another bundle? (In this case the cxf-rt-frontend).
/Bengt
2013/4/2 Freeman Fang <freeman.f...@gmail.com
<mailto:freeman.f...@gmail.com>>
Hi,
No, that blog is a little bit out of data and not
applicable for Karaf 2.3.x anymore.
With Karaf 2.3.x we endorse specs(like jaxws/jaxb) jars,
so we need export those packages from system bundle 0, so
don't comment it out
and those endorsed specs jars can load jaxws impl
bundle(cxf jaxws frontend bundle in this case) during
runtime OOTB.
No concrete idea why it doesn't work for you(also I don't
think there's any real difference between karaf 2.3 and
karaf 2.3.1 in terms of jaxws loading mechanism), that's
why I ask a test case, it's definitely very helpful to
resolve the issue faster.
-------------
Freeman(Yue) Fang
Red Hat, Inc.
FuseSource is now part of Red Hat
Web: http://fusesource.com <http://fusesource.com/> |
http://www.redhat.com/
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
<http://freemanfang.blogspot.com/>
http://blog.sina.com.cn/u/1473905042
weibo: @Freeman小屋
On 2013-4-2, at 下午4:38, Bengt Rodehav wrote:
I found this blog post by Dan Kulp:
http://www.dankulp.com/blog/2011/11/apache-cxf-in-osgi/
I modified the jre.properties accordingly but I still get
the exact same stack trace.
/Bengt
2013/4/2 Bengt Rodehav <be...@rodehav.com
<mailto:be...@rodehav.com>>
Hello Freeman,
It would be a lot of work for me to narrow down my
application to a simple test case. I'd really like to
try other possibilities first, like:
- Understanding how the factory pattern is supposed
to work, espcially for Cxf
- What has been changed in Karaf 2.3.1. that could
affect this
/Bengt
2013/4/2 Freeman Fang <freeman.f...@gmail.com
<mailto:freeman.f...@gmail.com>>
Hi,
No concrete idea now, could you please append a
test case which we can build and reproduce it?
Thanks
-------------
Freeman(Yue) Fang
Red Hat, Inc.
FuseSource is now part of Red Hat
Web: http://fusesource.com
<http://fusesource.com/> | http://www.redhat.com/
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
<http://freemanfang.blogspot.com/>
http://blog.sina.com.cn/u/1473905042
weibo: @Freeman小屋
On 2013-4-2, at 下午3:30, Bengt Rodehav wrote:
I've been using Karaf 2.3.0 for a while. I now
tried to upgrade to Karaf 2.3.1 but ran into
problems with CXF.
I use cxf-codegen-plugin to generate code from a
WSDL file so that I can call the web service via
a proxy. However, after upgrading to Karaf 2.3.1
I get the following exception:
2013-04-02 09:19:03,317 | ERROR | rint Extender:
3 | BlueprintContainerImpl |
container.BlueprintContainerImpl 393 | Unable
to start blueprint container for bundle
se.digia.connect.services.iso20022.iws-client
org.osgi.service.blueprint.container.ComponentDefinitionException:
Error when instantiating bean iwsService of
class class
se.digia.connect.iso20022.iwsclient.Client
at
org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:333)[7:org.apache.aries.blueprint.core:1.1.0]
at
org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:806)[7:org.apache.aries.blueprint.core:1.1.0]
at
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787)[7:org.apache.aries.blueprint.core:1.1.0]
at
org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[7:org.apache.aries.blueprint.core:1.1.0]
at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_32]
at
java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_32]
at
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[7:org.apache.aries.blueprint.core:1.1.0]
at
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:245)[7:org.apache.aries.blueprint.core:1.1.0]
at
org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:183)[7:org.apache.aries.blueprint.core:1.1.0]
at
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:668)[7:org.apache.aries.blueprint.core:1.1.0]
at
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:370)[7:org.apache.aries.blueprint.core:1.1.0]
at
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:261)[7:org.apache.aries.blueprint.core:1.1.0]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_32]
at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_32]
at
java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_32]
at
org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)[7:org.apache.aries.blueprint.core:1.1.0]
at
org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)[7:org.apache.aries.blueprint.core:1.1.0]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_32]
at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_32]
at
java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_32]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_32]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)[:1.6.0_32]
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_32]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_32]
at java.lang.Thread.run(Thread.java:662)[:1.6.0_32]
Caused by:
javax.xml.ws.spi.FactoryFinder$ConfigurationError:
Provider org.apache.cxf.jaxws.spi.ProviderImpl
not found
at
javax.xml.ws.spi.FactoryFinder$2.run(FactoryFinder.java:130)
at
javax.xml.ws.spi.FactoryFinder.doPrivileged(FactoryFinder.java:229)[:1.6.0_32]
at
javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:124)[:1.6.0_32]
at
javax.xml.ws.spi.FactoryFinder.access$200(FactoryFinder.java:44)[:1.6.0_32]
at
javax.xml.ws.spi.FactoryFinder$3.run(FactoryFinder.java:220)
at
javax.xml.ws.spi.FactoryFinder.doPrivileged(FactoryFinder.java:229)[:1.6.0_32]
at
javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:160)[:1.6.0_32]
at
javax.xml.ws.spi.Provider.provider(Provider.java:43)[:1.6.0_32]
at
javax.xml.ws.Service.<init>(Service.java:35)[:1.6.0_32]
at
se.digia.connect.iso20022.iwsclient.iws.IntegrationWebService.<init>(IntegrationWebService.java:30)
at
se.digia.connect.iso20022.iwsclient.Client.createProxy(Client.java:198)
at
se.digia.connect.iso20022.iwsclient.Client.<init>(Client.java:35)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)[:1.6.0_32]
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)[:1.6.0_32]
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)[:1.6.0_32]
at
java.lang.reflect.Constructor.newInstance(Constructor.java:513)[:1.6.0_32]
at
org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:329)
at
org.apache.aries.blueprint.container.BeanRecipe.newInstance(BeanRecipe.java:962)
at
org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:331)
... 24 more
Has anything changed in Karaf 2.3.1 that could
cause this? My main reason for upgrading to
Karaf 2.3.1 is the fixes that has been done to
Aries blueprint - could it cause this?
/Bengt
--
Jean-Baptiste Onofré
jbono...@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com