What does the wsdl say for the action field on the operations?

If you create a service from the wsdl, the wsdl is the definitive contract and is what we use to determine the soap action, not the annotations.

Dan


On May 7, 2008, at 4:54 AM, [EMAIL PROTECTED] wrote:

Hello,

i'm using following code to obtain client proxy (some comments in code)


               JaxWsProxyFactoryBean factory = new
JaxWsProxyFactoryBean();
               factory.setServiceClass(serviceInterface); // here is
wsdl2java generated port interface (which contains soapaction="default") factory.setAddress(address); // service provider endpoint
               factory.setWsdlLocation(wsdlLocation); // in form
classpath:xx.wsdl
               factory.setServiceName(QName.valueOf(serviceName)); //
from wsdl
               factory.setProperties(new HashMap<String, Object>());
factory.getProperties().put("schema-validation- enabled",
new Boolean(schemaValidationEnabled)); // true
               T port = (T) factory.create();

i'm using cxf 2.1

during initialization it takes buildServiceFromWSDL path in
ReflectionServiceFactoryBean

during this path, it never invoked line like o.setProperty("action",
getAction(o, method));
which results in missing (empty) soap action .... which doesn't work for
system i want to call.

Am I doing something wrongly? Or did i miss something?

I see it as a bug and fix seems to be to add missing magic line into
initializeWSDLOperation of JaxWsServiceFactoryBean class. There are more places which are good enough for me, but i don't know which is the best in
general.

best regards
jano

---
Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog




Reply via email to