你把你的客户端程序列出来看看,是不是call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);有错啊

解决方案 »

  1.   

    .............
    //Map this type so SOAP can use it
    SOAPMappingRegistry registry = new SOAPMappingRegistry();
    BeanSerializer serializer = new BeanSerializer();
    registry.mapTypes(
    Constants.NS_URI_SOAP_ENC,
    new QName("urn:cd-catalog-demo", "cd"),
    CD.class,
    serializer,
    serializer); //Build the Call Object
    Call call = new Call(); call.setSOAPMappingRegistry(registry); call.setTargetObjectURI("urn:cd-catalog");
    call.setMethodName("addCD");
    call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC); //set up parameters
    Vector params = new Vector();
    //params.addElement(new Parameter("tile", String.class, title, null));
    //params.addElement(new Parameter("artist", String.class, artist, null)); params.addElement(new Parameter("cd", CD.class, cd, null)); call.setParams(params);
                    
    //invoke the call
    Response response;
    response = call.invoke(url, "");   //是在这一句出错!
                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       
    if (!response.generatedFault()) {
    System.out.println("Successfull CD Addtion."); } else {
    Fault fault = response.getFault();
    System.out.println("Error encounterd :" + fault.getFaultString()); }
    ...........
      

  2.   

    你服务端注册的服务与你在这客户的信息一致吗?不如用命令看一下:
    java org.apache.soap.server.ServiceManagerClient url listjava org.apache.soap.server.ServiceManagerClient url query urn:cd-catalog
      

  3.   

    执行java org.apache.soap.server.ServiceManagerClient url list显示:
    Deployed Services:
    urn:cd-catalog执行java org.apache.soap.server.ServiceManagerClient url query urn:cd-catalog显示:
    <isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment" id="urn:cd-catalog" checkMustUnderstands="false">
      <isd:provider type="java" scope="Application" methods="addCD getCD list">
        <isd:java class="com.ufo.CDCatalog" static="false"/>
      </isd:provider>
      <isd:faultListener>org.apache.server.DOMFaultListener</isd:faultListener>
      <isd:mappings>
        <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:x="urn:cd-catalog-demo" qname="x:cd" javaType="com.ufo.CD" xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer" java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer"/>
      </isd:mappings>
    </isd:service>