the "No such operation 'request' '' occured when I used the axis provider 
WSIFDynamicProvider_ApacheAxis(), When I use the soap provider, 
WSIFDynamicProvider_ApacheSOAP, it would give a error: No Serializer found to 
serialize a 'java.lang.String' using encoding style 'literal'.

The whole WSDL is listed as below:
file 1
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="WebFeatureService" 
targetNamespace="http://www.globus.org/namespaces/wfs/core/wfs_instance/service";
 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:binding="http://www.globus.org/namespaces/wfs/core/wfs_instance/bindings"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";>
  <wsdl:import 
namespace="http://www.globus.org/namespaces/wfs/core/wfs_instance/bindings"; 
location="WFS_bindings.wsdl"/>
  <wsdl:service name="WebFeatureService">
    <wsdl:port name="WFSPortTypePort" binding="binding:WFSPortTypeSOAPBinding">
      <soap:address location="http://localhost:8080/wsrf/services/"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

 
file 2:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="WebFeatureService" 
targetNamespace="http://www.globus.org/namespaces/wfs/core/wfs_instance/bindings";
 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:porttype="http://www.globus.org/namespaces/wfs/core/wfs_instance"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";>
  <wsdl:import 
namespace="http://www.globus.org/namespaces/wfs/core/wfs_instance"; 
location="WFS_flattened.wsdl"/>
  <wsdl:binding name="WFSPortTypeSOAPBinding" type="porttype:WFSPortType">
    <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="doservice">
      <soap:operation 
soapAction="http://www.globus.org/namespaces/wfs/core/wfs_instance/WFSPortType/doserviceRequest"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
</wsdl:definitions>

file 3 :
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="WebFeatureService" 
targetNamespace="http://www.globus.org/namespaces/wfs/core/wfs_instance"; 
xmlns="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:wsrpw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl";
 xmlns:wsdlpp="http://www.globus.org/namespaces/2004/10/WSDLPreprocessor"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:tns="http://www.globus.org/namespaces/wfs/core/wfs_instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd";>
  <types>
    <xsd:schema 
targetNamespace="http://www.globus.org/namespaces/wfs/core/wfs_instance"; 
xmlns:tns="http://www.globus.org/namespaces/wfs/core/wfs_instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
    

    <!-- REQUESTS AND RESPONSES -->
    
    <xsd:element name="request" type="xsd:string"/>
    <xsd:element name="response" type="xsd:string"/>
</xsd:schema>
  </types>
  <message name="RequestMessage">
    <part name="parameters" element="tns:request"/>
  </message>
  <message name="ResponseMessage">
    <part name="parameters" element="tns:response"/>
  </message>
  <portType name="WFSPortType">
    <operation name="doservice">
      <input message="tns:RequestMessage"/>
      <output message="tns:ResponseMessage"/>
    </operation>
  </portType>
</definitions>.

If I change the parts of third file to be :
<message name="RequestMessage">
    <part name="parameters" type="txsd:string"/>
  </message>
  <message name="ResponseMessage">
    <part name="parameters" type="txsd:string"/>
  </message>
I got a erro: No such operation 'parameters'

在2008-08-10,lorkyo <[EMAIL PROTECTED]> 写道:

Hello, I'm new in using wsif, can anyone give me a example  on how to invoke a 
webservice? the sample "DynamicInvoker" only support parts as a to be basic 
type, such as integer, String ansd so on. But if a part refers to a XML element 
listed below, How should I do? 
<xsd:element name="request" type="xsd:string"/>
    <xsd:element name="response" type="xsd:string"/>
</xsd:schema>
  </types>
  <message name="RequestMessage">
    <part name="parameters" element="tns:request"/>
  </message>
  <message name="ResponseMessage">
    <part name="parameters" element="tns:response"/>
  </message>
  <portType name="WFSPortType">
    <operation name="doservice">
      <input message="tns:RequestMessage"/>
      <output message="tns:ResponseMessage"/>
    </operation>
  </portType>
</definitions>
 
I have tried to pass String object as in put,but get a error :No such operation 
'request' .  Do  I need to pass Elements as input parameters? How to generate 
such Elements and How to set  their values?

 

Reply via email to