Hi,

wsdls says that soap action is "default" but on the wire it's sending 
nothing. 

fragment of wsdl
 <wsdl:binding name='getBrandServiceOperationsBinding' 
type='tns:getBrandServiceOperations'>
  <soap:binding style='document' 
transport='http://schemas.xmlsoap.org/soap/http'/>
  <wsdl:operation name='getBrandService'>
   <soap:operation soapAction='default'/>
   <wsdl:input>
    <soap:body use='literal'/>
   </wsdl:input>
   <wsdl:output>
    <soap:body use='literal'/>
   </wsdl:output>
   <wsdl:fault name='TechnicalExceptionFault'>
    <soap:fault name='TechnicalExceptionFault' use='literal'/>
   </wsdl:fault>
  </wsdl:operation>
 </wsdl:binding>

i didn't find in sources a place, where action is set except the place, 
which is reading action from annotations.

best regards
jano




Daniel Kulp <[EMAIL PROTECTED]> 
05/13/2008 04:34
Bitte antworten an
[email protected]


An
[email protected]
Kopie

Thema
Re: empty soap action using JAXWS/JAXB  [Virus checked]







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