将WSDLLocation设成你的wsdl的路径;
然后选择你的Service以及Port,
就可以了!

解决方案 »

  1.   

    谢谢你上次关于用delphi写web services写客户端的问题,但是还有其他的问题。
    设置server和port还是不行,最后设置url就可以了,但是又遇到了新的问题,我的web services服务端是java写的,其中的接口的参数有复杂结构。用delphi调用时会出现问题,时间很紧急,能不能帮我解决这个问题。
    用到java文件是
    personinfo.java
    public  class personinfo
    {
       public java.lang.String  pid;
       public java.lang.String  pname;
       public java.lang.String  psex;
       public java.lang.String  pnative;
    }personservice.java
    public class personservice
    {
      public  void updatePersoninfo(pid){
        System.out.println("pid="+pid+",pname="+pinfo.pname+" seted");
      }  public personinfo getPersoninfo(String pid){
        System.out.println("getPersoninfo("+pid+")");
        personinfo pinfo = new personinfo();
        pinfo.pid = pid;
        pinfo.pname = "dd";
        pinfo.psex = "na";
        pinfo.pnative = "s";
        return pinfo;xczc
      }
    }delphi这边的调用方法是将wsdl导入后用下面的代码procedure TForm1.Button1Click(Sender: TObject);
    var
      pinfo : personinfo;
      Ds : Datatran_Service;
    begin
      Ds := HTTPRIO1 as  Datatran_Service;
      pinfo:=ds.getPersoninfo('ss');
    end;最后可以在服务端的控制台上看到以下的输出:getPersoninfo(ss)
    但是会报:Internal Server Error (500)的错误提示。
    现在这个复杂数据类型该怎么解决
      

  2.   

    我也是用delphi7调用java的webservice,就按照我说的设置,没有什么问题呀
      

  3.   

    zhx_232,我里边现在还没有用到中文,我用的是delphi6,另外我这里用的tomcat做的服务。
    我按照你说的方法配置不好,有一个最简单的列子只设置URL就可以了。
      

  4.   

    zhx_232,我的wsdl文件是这样的
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="Datatran_Service-interface"
     xmlns="http://schemas.xmlsoap.org/wsdl/"
     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"><types>
      <xsd:schema>
        targetNamespace="http://www.ecerami.com/schema"
        xmlns="http://www.w3.org/2001/XMLSchema">
        <xsd:complexType name="personinfo">
          <xsd:sequence>
            <xsd:element name="pid" type="xsd:string"/>
            <xsd:element name="pname" type="xsd:string"/>
            <xsd:element name="psex" type="xsd:string"/>
            <xsd:element name="pnative" type="xsd:string"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:schema>
    </types><message name="updatePersoninfoRequest">
     <part name="pinfo" type="xsdl:personinfo"/>
    </message><message name="getPersoninfoRequest">
      <part name="pid" type="xsd:string"/>
    </message><message name="getPersoninfoResponse">
      <part name="return" type="xsd1:personinfo"/>
    </message>
    <portType
      name="Datatran_Service">
      <operation name="updatePersoninfo">
        <input message="updatePersoninfoRequest"/>
      </operation>
      <operation name="getPersoninfo">
       <input
          message="getPersoninfoRequest"/>
       <output
          message="getPersoninfoResponse"/> 
      </operation>
    </portType><binding
     name="Datatran_ServiceBinding"
     type="Datatran_Service">
     <soap:binding style="rpc"
     transport="http://schemas.xmlsoap.org/soap/http"/>
     <operation
     name="updatePersoninfo">
     <soap:operation
     soapAction="urn:demo1:Datatran_Service"/>
     <input>
     <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="urn:demo1:Datatran_Service"
     use="encoded"/>
     </input>
     </operation>
     <operation
     name="getPersoninfo">
     <soap:operation
     soapAction="urn:demo1:Datatran_Service"/>
     <input>
     <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="urn:demo1:Datatran_Service" use="encoded"/>
     </input>
     <output>
     <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="urn:demo1:Datatran_Service"
     use="encoded"/>
     </output>
     </operation>
    </binding>
    <service name="DatatranService">
      <port name="Datatran_port" binding="tns:Datatran_ServiceBinding">
        <soap:address location="http://172.16.1.1:8080/soap/servlet/rpcrouter"/>
      </port>
    </service>  
    </definitions>在delphi7中选择wsdl source时选择这个文件点击next按钮时不能通过,提示:Could not convert variant of type (Null) into type (OleStr)。你能不能帮我看看这个文件有什么问题.