Hi,
My comment inline.
On 2011-8-10, at 下午6:59, Naira & Kobo wrote:
Hi all,
I am trying to migrate a csf service from SMX 4.3 to 4.4 and when I
deployed
in the new SMX 4.4.0-fuse-00-43, it throws the following exception:
11:50:48,442 | ContextLoaderListener | 85 -
org.springframework.osgi.extender - 1.2.1 | Application context
refresh
failed (OsgiBundleXmlApplicationContext(bundle=generic-soap-consumer-
bridge,
config=osgibundle:/META-INF/spring/*.xml))
java.lang.NoClassDefFoundError: javax.xml.namespace.QName not found
from
bundle [generic-soap-consumer-bridge]
Firstly you need check if your generic-soap-consumer-bridge customer
bundle already import package javax.xml.namespace.
FUSE ESB 4.3 by default use equinox which don't strictly require it
but FUSE ESB 4.4 by default use felix which need import all package
which isn't start with "java."(Per OSGi spec)
at $Proxy94.<clinit>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)[:1.6.0_25-ea]
at
sun
.reflect
.NativeConstructorAccessorImpl
.newInstance(NativeConstructorAccessorImpl.java:39)[:1.6.0_25-ea]
at
sun
.reflect
.DelegatingConstructorAccessorImpl
.newInstance(DelegatingConstructorAccessorImpl.java:27)[:1.6.0_25-ea]
at
java.lang.reflect.Constructor.newInstance(Constructor.java:513)[:
1.6.0_25-ea]
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:588)[:
1.6.0_25-ea]
at
org
.apache.cxf.tools.util.SOAPBindingUtil.getProxy(SOAPBindingUtil.java:
89)
at
org
.apache
.cxf.tools.util.SOAPBindingUtil.getSoapBinding(SOAPBindingUtil.java:
286)
at
org
.apache
.cxf.tools.util.SOAPBindingUtil.getSoapBinding(SOAPBindingUtil.java:
278)
at
org
.apache
.cxf
.binding
.soap.SoapBindingFactory.createBindingInfo(SoapBindingFactory.java:
627)
at
org
.apache
.cxf.wsdl11.WSDLServiceBuilder.buildBinding(WSDLServiceBuilder.java:
487)
at
org
.apache
.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:
349)
at
org
.apache
.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:
198)
at
org
.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:
142)
at
org
.apache
.cxf
.service
.factory
.ReflectionServiceFactoryBean
.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:382)
at
org
.apache
.cxf
.service
.factory
.ReflectionServiceFactoryBean
.initializeServiceModel(ReflectionServiceFactoryBean.java:499)
at
org
.apache
.cxf
.service
.factory
.ReflectionServiceFactoryBean
.create(ReflectionServiceFactoryBean.java:241)
at
org
.apache
.cxf
.frontend
.AbstractWSDLBasedEndpointFactory
.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101)
at
org
.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:
157)
at
org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:
249)
at
org
.apache
.camel.component.cxf.CxfEndpoint.createConsumer(CxfEndpoint.java:130)
at
org
.apache
.camel
.impl
.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:
61)
at
org
.apache.camel.impl.DefaultRoute.onStartingServices(DefaultRoute.java:
75)
at org.apache.camel.impl.RouteService.warmUp(RouteService.java:128)
at
org
.apache
.camel
.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:
1839)
at
org
.apache
.camel
.impl
.DefaultCamelContext
.safelyStartRouteServices(DefaultCamelContext.java:1765)
at
org
.apache
.camel
.impl
.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:
1555)
at
org
.apache
.camel
.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1447)
at
org
.apache
.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1338)
at
org
.apache
.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:164)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:67)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:54)
at
org
.apache
.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1316)
at
org
.apache
.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:
203)
at
org
.apache
.camel
.spring
.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:101)
at
org
.apache
.camel
.spring
.CamelContextFactoryBean
.onApplicationEvent(CamelContextFactoryBean.java:238)
at
org
.springframework
.context
.event
.SimpleApplicationEventMulticaster
.multicastEvent(SimpleApplicationEventMulticaster.java:97)
[70:org.springframework.context:3.0.5.RELEASE]
at
org
.springframework
.context
.support
.AbstractApplicationContext
.publishEvent(AbstractApplicationContext.java:303)
[70:org.springframework.context:3.0.5.RELEASE]
at
org
.springframework
.context
.support
.AbstractApplicationContext
.finishRefresh(AbstractApplicationContext.java:911)
[70:org.springframework.context:3.0.5.RELEASE]
at
org
.springframework
.osgi
.context
.support
.AbstractOsgiBundleApplicationContext
.finishRefresh(AbstractOsgiBundleApplicationContext.java:235)
[82:org.springframework.osgi.core:1.2.1]
at
org
.springframework
.osgi.context.support.AbstractDelegatedExecutionApplicationContext
$4.run(AbstractDelegatedExecutionApplicationContext.java:358)
[82:org.springframework.osgi.core:1.2.1]
at
org
.springframework
.osgi
.util
.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:
85)[82:org.springframework.osgi.core:1.2.1]
at
org
.springframework
.osgi
.context
.support
.AbstractDelegatedExecutionApplicationContext
.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:
320)[82:org.springframework.osgi.core:1.2.1]
at
org
.springframework
.osgi
.extender
.internal
.dependencies.startup.DependencyWaiterApplicationContextExecutor
$
CompleteRefreshTask
.run(DependencyWaiterApplicationContextExecutor.java:132)
[85:org.springframework.osgi.extender:1.2.1]
at java.lang.Thread.run(Thread.java:662)[:1.6.0_25-ea]
See the context.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:osgi="http://camel.apache.org/schema/osgi"
xmlns:osgix="http://www.springframework.org/schema/osgi-compendium
"
xmlns:cxf="http://camel.apache.org/schema/cxf"
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xmlns:isw="http://techquest.interswitchng.com/services"
xmlns:beans="http://www.springframework.org/schema/beans"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd
http://camel.apache.org/schema/osgi
http://camel.apache.org/schema/osgi/camel-osgi.xsd
http://www.springframework.org/schema/osgi-compendium
http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd
http://www.springframework.org/schema/osgi
http://www.springframework.org/schema/osgi/spring-osgi.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://camel.apache.org/schema/cxf
http://camel.apache.org/schema/cxf/camel-cxf.xsd
http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://cxf.apache.org/core http://cxf.apache.org/schemas/
core.xsd
http://servicemix.apache.org/cxfbc/1.0
http://servicemix.apache.org/cxfbc/1.0/servicemix-cxf-bc.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml"/>
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-http.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-
binding.xml"
/>
<import resource="classpath:META-INF/cxf/osgi/cxf-extension-
osgi.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-http-
jetty.xml"/>
Also FUSE ESB 4.4 use cxf 2.4 underlying so you don't need import
those cxf-extension-*.xml except the cxf-extension-osgi.xml if you
need use http-osgi transport.
Freeman
<cxf:cxfEndpoint id="ServiceEndpoint"
address="${generic-soap-request-url}"
wsdlURL="${karaf.home}/data/conf/wsdl/Services.wsdl"
endpointName="s:EnrollmentServicesSoap12Endpoint"
serviceName="s:Services"
xmlns:s="http://temp.org/" >
<cxf:properties>
<entry key="dataFormat" value="MESSAGE"/>
</cxf:properties>
</cxf:cxfEndpoint>
<bean id="deadLetter"
class="org.apache.camel.builder.DeadLetterChannelBuilder">
<property name="deadLetterUri" value="direct:errorHandler"/>
</bean>
<osgi:camelContext xmlns="http://camel.apache.org/schema/spring"
trace="true">
<route>
<from uri="cxf:bean:ServiceEndpoint" />
...........
--
View this message in context:
http://camel.465427.n5.nabble.com/NoClassDefFoundError-javax-xml-namespace-QName-CXF-SOAP-Consumer-tp4685413p4685413.html
Sent from the Camel - Users mailing list archive at Nabble.com.
---------------------------------------------
Freeman Fang
FuseSource
Email:[email protected]
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com