I need to incorporate an existing wsdl and client app in my mule
application.
The issue with the existing soap messages is that the operation is not
passed correctly : it is passed without namespace (see attachments).
When running standalone cxf this is not a problem since we have
@WebMethod(action = "http://www.ansur.be/ws/store")
public void save(
@WebParam(partName = "InObject", name = "InObject")
ApplObject inObject
) throws Fault_Exception;
and the message passes the soapaction in the header.
In the cxf classes the SoapActionInIntercepter determines the operation from
this soapaction
public void handleMessage(SoapMessage message) throws Fault {
if (message.getVersion() instanceof Soap11) {
Map<String, List<String>> headers =
CastUtils.cast((Map)message.get(Message.PROTOCOL_HEADERS));
if (headers != null) {
List<String> sa =
headers.get(SoapBindingConstants.SOAP_ACTION);
if (sa != null && sa.size() > 0) {
String action = sa.get(0);
if (action.startsWith("\"")) {
action = action.substring(1, action.length() - 1);
}
getAndSetOperation(message, action);
}
}
whenever unsing mule however with the same setup, this does not work, I get
an error
org.apache.cxf.interceptor.Fault: Message part save was not recognized.
(Does it exist in service WSDL?)
at
org.apache.cxf.interceptor.BareInInterceptor.handleMessage(BareInInterceptor.java:133)
at
org.apache.cxf.binding.soap.interceptor.RPCInInterceptor.handleMessage(RPCInInterceptor.java:111)
....
The reason is that the soapaction is not forwarded to these cxf classes.
I'm stuck with this since I can not change the client's behaviour, all help
is greatly welcome !
Relevant files (wsdl, generated java classes, soap example, mule config,
error message) are attached
Jo Desmet
http://www.nabble.com/file/p21514055/Appl.wsdl Appl.wsdl
http://www.nabble.com/file/p21514055/errormessage.txt errormessage.txt
http://www.nabble.com/file/p21514055/mule-config-cxf.xml mule-config-cxf.xml
http://www.nabble.com/file/p21514055/be.zip be.zip
--
View this message in context: http://www.nabble.com/Mule-transport-not-forwarding-soapaction-header-to-CXF-tp21514055p21514055.html
Sent from the Mule - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
If you already have this as an external web service, you could proxy any
calls to it using Mule. I'm not sure if this is what you want to do, just
suggesting it.
Meanwhile, what does your SOAP action refer to? http://www.ansur.be/ws/store
is what's listed below but I see a different set of methods in the WSDL and
component.
HTH
A
Antoine Borg, Senior Consultant | Tel: +32 28 504 696
ricston Ltd., BP 2, 1180 Uccle, Brussels, BELGIUM
email: antoin...@ricston.com | blog: blog.ricston.com | web: ricston.com