[mule-user] Mule transport not forwarding soapaction header to CXF

1 view
Skip to first unread message

jo desmet

unread,
Jan 17, 2009, 3:10:25 AM1/17/09
to us...@mule.codehaus.org

Hello,

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


Antoine Borg

unread,
Jan 20, 2009, 2:54:11 AM1/20/09
to us...@mule.codehaus.org
Hello,

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

Reply all
Reply to author
Forward
0 new messages