Hi Dan,
Thank you for your reply. I have created a 'MediatorInInterceptor' extending
'AbstractPhaseInterceptor<SoapMessage>'. Following is the class definition.
public class MediatorInInterceptor extends
AbstractPhaseInterceptor<SoapMessage>{
public MediatorInInterceptor() {
super(Phase.POST_STREAM);
addAfter(StaxInInterceptor.class.getName());
}
public void handleMessage(SoapMessage message) throws Fault {
try {
XMLStreamReader xr =
message.getContent(XMLStreamReader.class);
ShaymStreamReaderDelegate ss = new
ShaymStreamReaderDelegate(xr);
message.setContent(XMLStreamReader.class, ss);
} catch (Throwable e) {
}
}
}
The 'ShaymStreamReaderDelegate' is a class that extends 'StreamReaderDelegate'.
Following is the class definition.
public class ShaymStreamReaderDelegate extends StreamReaderDelegate {
public ShaymStreamReaderDelegate(XMLStreamReader reader){
super(reader);
}
@Override
public String getNamespaceURI(String prefix) {
if(prefix.equalsIgnoreCase("xsd")){
return "http://www.w3.org/2001/XMLSchema/";
}
return super.getNamespaceURI(prefix);
}
}
I have added the 'MediatorInInterceptor' in the jaxws in interceptors
collection.
But when I run this I am getting the same exception. Also beak point places
inside 'getNamespaceURI' did not hit.
Thanks and regards,
Shyam S
On 22-Jul-2011, at 2:01 AM, Daniel Kulp [via CXF] wrote:
>
> You could TRY writing a CXF interceptor that would live after the
> StaxInInterceptor that would grab the XmlStreamReader, wrapper it with a
> StreamReaderDelegate that overrides the various namespace lookup methods
> (like
> getNamespaceURI(String prefix)) and set that back into the message. That
> may allow you to "pretend" those prefixes are there.
>
>
> Dan
>
>
> On Monday, July 18, 2011 1:00:37 AM Shyamranny wrote:
>
> > Hi,
> >
> > I have upgraded my web service and now the new webservice uses CXF. When I
> > send my old soap message to the new CXF webservice, i am getting the
> > following response.
> >
> > 'Unmarshalling Error: prefix xsd is not bound to a namespace'.
> >
> > In my soap request, I have the following element.
> >
> > '<A700129Naam xsi:type="xsd:string">Shyam</A700129Naam>' Here I use the
> > prefix 'xsd' and if I add this prefix in the xmlns, this soap will go well.
> > But our client will not change there soap request. They need to send the
> > old
> > soap request.
> >
> > How can I solve this issue? Can I add namespace and prefix in the spring
> > configuration file? I have tried a lot like XMLFilterImpl,
> > AbstractInDatabindingInterceptor, NamespacePrefixMapper etc. But not
> > worked.
> >
> > Thanks and regards,
> > Shyam S
> >
> > --
> > View this message in context:
> > http://cxf.547215.n5.nabble.com/Unmarshalling-Error-prefix-xsd-is-not-bound
> > -to-a-namespace-tp4598539p4598539.html Sent from the cxf-user mailing list
> > archive at Nabble.com.
> --
> Daniel Kulp
> [hidden email]
> http://dankulp.com/blog
> Talend - http://www.talend.com
>
>
> If you reply to this email, your message will be added to the discussion
> below:
> http://cxf.547215.n5.nabble.com/Unmarshalling-Error-prefix-xsd-is-not-bound-to-a-namespace-tp4598539p4620871.html
> To unsubscribe from Unmarshalling Error: prefix xsd is not bound to a
> namespace, click here.
--
View this message in context:
http://cxf.547215.n5.nabble.com/Unmarshalling-Error-prefix-xsd-is-not-bound-to-a-namespace-tp4598539p4621888.html
Sent from the cxf-user mailing list archive at Nabble.com.