Thank you!
Karolis Petrauskas On Wed, Aug 4, 2010 at 3:57 PM, Freeman Fang <[email protected]> wrote: > Hi, > > This is a known issue tracked by SMXCOMP-747[1] and already get fixed, you > ma need use servicemix-cxf-bc 2010.02-SNAPSHOT to pick up this fix. > > [1]https://issues.apache.org/activemq/browse/SMXCOMP-747 > > Freeman > On 2010-8-4, at 下午8:23, Karolis Petrauskas wrote: > >> Hello, >> >> I have a problem with processing of namespaces in the >> servicemix-cxf-bc component. I'm exposing a web service using this >> component, and trying to invoke it using apache-axis 1.4 client (i >> cant change the stack for the client). I'm getting an error "Namespace >> prefix 'xsd' has not been declared" (more details bellow). Axis >> declares this namespace in the tag soapenv:Envelope, which is then >> removed by the cxf-bc endpoint. >> I had a very similar situation in apache ode. There the >> namespaces, especially those, used in the xsi:type attributes only, >> were lost in assign and invoke statements. I fixed ode locally, and >> added each namespace in the context explicitly by creating >> corresponding attributes. >> I can try to fix this issue in the servicemix too, but i want to >> ask you if i'm doing something wrong with namespaces, or is it a bug >> in the servicemix? >> >> org.apache.cxf.interceptor.LoggingInInterceptor writes the following >> xml (irrelevant parts are ommited, and xml if formated to be more >> readeable): >> <?xml version="1.0" encoding="UTF-8"?> >> <soapenv:Envelope >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >> xmlns:xsd="http://www.w3.org/2001/XMLSchema" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> >> <soapenv:Body> >> <request xmlns="xxx"> >> <maxSubscriptions xsi:type="xsd:long">0</maxSubscriptions> >> </request> >> </soapenv:Body> >> </soapenv:Envelope> >> >> The Normalized message produced by the cxf-bc component is as follows: >> InOut[ >> id: ID:10.40.137.92-12a3cbd4a84-13:117 >> status: Active >> role: provider >> service: {zzz}www >> endpoint: xslt >> operation: {zzz}qqq >> in: <?xml version="1.0" encoding="UTF-8"?> >> <request xmlns="xxx"> >> <maxSubscriptions xsi:type="xsd:long">0</maxSubscriptions> >> </request> >> ] >> >> The further processing fails because of missing declaration of the >> prefix "xsd", as it was in the Envelope tag and was removed by the >> cxf-bc component. The error looks like this: >> ; Line#: -1; Column#: -1 >> net.sf.saxon.trans.XPathException: Namespace prefix 'xsd' has not >> been declared >> at >> net.sf.saxon.om.StructuredQName.fromLexicalQName(StructuredQName.java:108) >> at >> net.sf.saxon.functions.ResolveQName.evaluateItem(ResolveQName.java:34) >> at net.sf.saxon.functions.Component.evaluateItem(Component.java:61) >> at >> net.sf.saxon.expr.SingletonComparison.effectiveBooleanValue(SingletonComparison.java:96) >> at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:679) >> .... >> >> I'm, using apache-servicemix version 3.3.2 with components version >> 2010-01. >> All hints and suggestions would be very valuable. Excuse me for my poor >> English. >> >> Karolis Petrauskas > > > -- > Freeman Fang > > ------------------------ > Open Source SOA: http://fusesource.com > Apache Servicemix:http://servicemix.apache.org > Apache Cxf: http://cxf.apache.org > Apache Karaf: http://karaf.apache.org > Apache Felix: http://felix.apache.org > >
