我有一个 WSDL
RequestService (wsdl) 
  getRequest 
  createRequest 
   getRequest 
现在用 myedlipse 创建了web services client现在我想用项目中的一个index.jsp调用这个wsdl进行测试,请教下,这么用啊?

解决方案 »

  1.   


    web services client 生成后 自动创建如下代码:package cn.com.weaver.ws.workflow.request.wsdl;import javax.jws.WebMethod;
    import javax.jws.WebParam;
    import javax.jws.WebResult;
    import javax.jws.WebService;
    import javax.jws.soap.SOAPBinding;
    import cn.com.weaver.ws.workflow.request.CreateRequest;
    import cn.com.weaver.ws.workflow.request.CreateRequestResponse;
    import cn.com.weaver.ws.workflow.request.GetRequest;
    import cn.com.weaver.ws.workflow.request.GetRequestResponse;@WebService(name = "RequestService", targetNamespace = "http://www.weaver.com.cn/ws/workflow/request/wsdl")
    @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.BARE)
    public interface RequestService { @WebMethod(operationName = "createRequest", action = "")
    @WebResult(name = "createRequestResponse", targetNamespace = "http://www.weaver.com.cn/ws/workflow/request")
    public CreateRequestResponse createRequest(
    @WebParam(name = "createRequest", targetNamespace = "http://www.weaver.com.cn/ws/workflow/request")
    CreateRequest createRequest); @WebMethod(operationName = "getRequest", action = "")
    @WebResult(name = "getRequestResponse", targetNamespace = "http://www.weaver.com.cn/ws/workflow/request")
    public GetRequestResponse getRequest(
    @WebParam(name = "getRequest", targetNamespace = "http://www.weaver.com.cn/ws/workflow/request")
    GetRequest getRequest);}
      

  2.   


    http://localhost/ws/RequestService?wsdl  下我的 WSDL 文件:  <?xml version="1.0" encoding="UTF-8" ?> 
    - <wsdl:definitions targetNamespace="http://www.weaver.com.cn/ws/workflow/request/wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.weaver.com.cn/ws/workflow/request/wsdl" xmlns:types="http://www.weaver.com.cn/ws/workflow/request" xmlns:apachesoap="http://xml.apache.org/xml-soap">
    - <wsdl:types>
    - <xs:schema targetNamespace="http://www.weaver.com.cn/ws/workflow/request" elementFormDefault="qualified" xmlns="http://www.weaver.com.cn/ws/workflow/request" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    - <xs:element name="createRequest">
    - <xs:complexType>
    - <xs:sequence>
      <xs:element ref="RequestInfo" /> 
      </xs:sequence>
      </xs:complexType>
      </xs:element>
    - <xs:element name="createRequestResponse">
    + <xs:complexType>
    - <xs:sequence>
      <xs:element name="createRequestReturn" type="xs:string" /> 
      </xs:sequence>
      </xs:complexType>
      </xs:element>
    - <xs:element name="getRequest">
    - <xs:complexType>
    - <xs:sequence>
      <xs:element name="requestId" type="xs:int" /> 
      </xs:sequence>
      </xs:complexType>
      </xs:element>
    - <xs:element name="getRequestResponse">
    - <xs:complexType>
    - <xs:sequence>
      <xs:element ref="RequestInfo" /> 
      </xs:sequence>
      </xs:complexType>
      </xs:element>
    - <xs:element name="RequestInfo">
    - <xs:complexType>
    - <xs:sequence>
      <xs:element ref="MainTableInfo" /> 
      <xs:element ref="DetailTableInfo" minOccurs="0" /> 
      <xs:element ref="RequestLog" minOccurs="0" /> 
      </xs:sequence>
      <xs:attribute name="workflowid" use="required" type="xs:string" /> 
      <xs:attribute name="requestid" use="optional" type="xs:string" /> 
      <xs:attribute name="creatorid" use="optional" type="xs:string" /> 
      <xs:attribute name="description" use="optional" type="xs:string" /> 
      <xs:attribute name="requestlevel" use="optional" type="xs:string" /> 
      <xs:attribute name="remindtype" use="optional" type="xs:string" /> 
      <xs:attribute name="hostid" use="optional" type="xs:string" /> 
      </xs:complexType>
      </xs:element>
    - <xs:element name="Cell">
    - <xs:complexType>
      <xs:attribute name="name" use="required" type="xs:string" /> 
      <xs:attribute name="type" use="optional" type="xs:string" /> 
      <xs:attribute name="value" use="required" type="xs:string" /> 
      </xs:complexType>
      </xs:element>
    - <xs:element name="DetailTable">
    - <xs:complexType>
    - <xs:sequence>
      <xs:element ref="Row" minOccurs="0" maxOccurs="unbounded" /> 
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:string" /> 
      </xs:complexType>
      </xs:element>
    - <xs:element name="DetailTableInfo">
    - <xs:complexType>
    - <xs:sequence>
      <xs:element ref="DetailTable" minOccurs="0" maxOccurs="unbounded" /> 
      </xs:sequence>
      </xs:complexType>
      </xs:element>
    - <xs:element name="MainTableInfo">
    - <xs:complexType>
    - <xs:sequence>
      <xs:element ref="Property" maxOccurs="unbounded" /> 
      </xs:sequence>
      </xs:complexType>
      </xs:element>
    - <xs:element name="Property">
    - <xs:complexType>
      <xs:attribute name="name" use="required" type="xs:string" /> 
      <xs:attribute name="type" use="optional" type="xs:string" /> 
      <xs:attribute name="value" use="required" type="xs:string" /> 
      </xs:complexType>
      </xs:element>
    - <xs:element name="Row">
    - <xs:complexType>
    - <xs:sequence>
      <xs:element ref="Cell" maxOccurs="unbounded" /> 
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:string" /> 
      </xs:complexType>
      </xs:element>
    - <xs:element name="RequestLog">
    - <xs:complexType>
    - <xs:sequence>
      <xs:element ref="Log" minOccurs="0" maxOccurs="unbounded" /> 
      </xs:sequence>
      </xs:complexType>
      </xs:element>
    - <xs:element name="Log">
    - <xs:complexType>
      <xs:attribute name="id" use="required" type="xs:string" /> 
      <xs:attribute name="node" use="optional" type="xs:string" /> 
      <xs:attribute name="comment" use="optional" type="xs:string" /> 
      <xs:attribute name="operator" use="optional" type="xs:string" /> 
      <xs:attribute name="opdate" use="optional" type="xs:string" /> 
      <xs:attribute name="optime" use="optional" type="xs:string" /> 
      <xs:attribute name="optype" use="optional" type="xs:string" /> 
      <xs:attribute name="receiver" use="optional" type="xs:string" /> 
      </xs:complexType>
      </xs:element>
      </xs:schema>
      </wsdl:types>
    - <wsdl:message name="createRequestResponse">
      <wsdl:part name="parameters" element="types:createRequestResponse" /> 
      </wsdl:message>
    - <wsdl:message name="createRequestRequest">
      <wsdl:part name="parameters" element="types:createRequest" /> 
      </wsdl:message>
    - <wsdl:message name="getRequestResponse">
      <wsdl:part name="parameters" element="types:getRequestResponse" /> 
      </wsdl:message>
    - <wsdl:message name="getRequestRequest">
      <wsdl:part name="parameters" element="types:getRequest" /> 
      </wsdl:message>
    - <wsdl:portType name="RequestService">
    - <wsdl:operation name="createRequest">
      <wsdl:input name="createRequestRequest" message="tns:createRequestRequest" /> 
      <wsdl:output name="createRequestResponse" message="tns:createRequestResponse" /> 
      </wsdl:operation>
    - <wsdl:operation name="getRequest">
      <wsdl:input name="getRequestRequest" message="tns:getRequestRequest" /> 
      <wsdl:output name="getRequestResponse" message="tns:getRequestResponse" /> 
      </wsdl:operation>
      </wsdl:portType>
    - <wsdl:binding name="RequestServiceSoapBinding" type="tns:RequestService">
      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> 
    - <wsdl:operation name="createRequest">
      <wsdlsoap:operation /> 
    - <wsdl:input>
      <wsdlsoap:body use="literal" /> 
      </wsdl:input>
    - <wsdl:output>
      <wsdlsoap:body use="literal" /> 
      </wsdl:output>
      </wsdl:operation>
    - <wsdl:operation name="getRequest">
      <wsdlsoap:operation /> 
    - <wsdl:input>
      <wsdlsoap:body use="literal" /> 
      </wsdl:input>
    - <wsdl:output>
      <wsdlsoap:body use="literal" /> 
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:service name="RequestServiceService">
    - <wsdl:port name="RequestService" binding="tns:RequestServiceSoapBinding">
      <wsdlsoap:address location="http://oademo.itg.net/ws/RequestService" /> 
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>
      

  3.   


        public static void main(String[] args) {
                    RequestServiceServiceClient client = new RequestServiceServiceClient();
            
    //create a default service endpoint
            RequestService service = client.getRequestService();
            
            //add new
            CreateRequest createRequest = new CreateRequest();
            RequestInfo value = new RequestInfo();
           // value.
            value.setWorkflowid("90");
            value.setRequestid("8000");知道这么建立了 ,但是 有个类不知道如何创建对象:package cn.com.weaver.ws.workflow.request;import java.util.ArrayList;
    import java.util.List;
    import javax.xml.bind.annotation.XmlAccessType;
    import javax.xml.bind.annotation.XmlAccessorType;
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlRootElement;
    import javax.xml.bind.annotation.XmlType;
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "property"
    })
    @XmlRootElement(name = "MainTableInfo")
    public class MainTableInfo {    @XmlElement(name = "Property", required = true)
        protected List<Property> property;
        public List<Property> getProperty() {
            if (property == null) {
                property = new ArrayList<Property>();
            }
            return this.property;
        }}
      

  4.   

    通过new web services client 在里面填写你的webservice地址 会把你的java类都生产在 你的webservice项目里 。。 你自己调用新生产的类 就能实现webservice 的方法了。。很简单。