Java 如何更改WSDL文件?

Java 如何更改WSDL文件?,java,web-services,soap,wsdl,jax-ws,Java,Web Services,Soap,Wsdl,Jax Ws,我正在使用SOAP客户端。我正在接收来自服务器的响应,可以在tcpdump中看到,但解析失败。因此,我无法得到想要的结果。我尝试使用SOAP-UI来获得一些见解。现在,来自服务器的响应和来自SOAP-UI的响应之间的差别很小。若我在测试模拟的传入响应中做了这个小更改,那个么应用程序将成功地开始工作 来自服务器的响应失败- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> &l

我正在使用SOAP客户端。我正在接收来自服务器的响应,可以在tcpdump中看到,但解析失败。因此,我无法得到想要的结果。我尝试使用SOAP-UI来获得一些见解。现在,来自服务器的响应和来自SOAP-UI的响应之间的差别很小。若我在测试模拟的传入响应中做了这个小更改,那个么应用程序将成功地开始工作

来自服务器的响应失败-

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
      <PromoPackRequestBO xsi:noNamespaceSchemaLocation="PromoPackRequestBO.xsd" xmlns:cus="http://siebel.com/CustomUI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:idea="http://www.siebel.com/xml/IDEA%20WSS%20Create%20SR%20IO">
         <messageHeader>
            <headerInfo>
               <CIRCLE_ID>DL</CIRCLE_ID>
               <CHANNEL_TYPE>SIVR</CHANNEL_TYPE>
               <TRACE_ID/>
               <LOB/>
               <OPERATION_NAME>CreateSR</OPERATION_NAME>
            </headerInfo>
            <errorInfo>
               <ERRORCODE/>
               <ERRORMESSAGE/>
            </errorInfo>
            <operationStatusCode>
               <OPERATION_STATUS_CODE>SUCCESS</OPERATION_STATUS_CODE>
            </operationStatusCode>
         </messageHeader>
         <messageBody>
            <businessInputData>
               <msisdnNumber>9911008174</msisdnNumber>
               <promoId>PR_otp_vp_5</promoId>
               <typeOfOperation/>
               <effectiveFromDate/>
               <productId/>
               <remarks/>
               <param1/>
               <param2/>
               <param3/>
            </businessInputData>
            <businessOutputData>
               <srNo>1-1362952280</srNo>
               <param1/>
               <param2/>
            </businessOutputData>
         </messageBody>
      </PromoPackRequestBO>
   </soapenv:Body>
</soapenv:Envelope>
编辑-I

我的相关客户代码-

URL endpointURL = new URL(SegmentationConfigurationProps.PROMO_PACK_URL);
PromoPackTraderServiceMsgSOAP_HTTP_ServiceLocator service = new PromoPackTraderServiceMsgSOAP_HTTP_ServiceLocator();
PromoPackTraderServiceMsgSOAP_HTTP_BindingStub bindingStub = new PromoPackTraderServiceMsgSOAP_HTTP_BindingStub(
                    endpointURL, service);

// Filling all values
bindingStub.promoPackRequest(promoPackRequestBO); //This throws exception.
//Axis1生成的客户端代码

public void promoPackRequest(
            com.ibm.idea.PromoPackTraderService.holders.RequestResponseTypeHolder promoPackRequestBO)
            throws java.rmi.RemoteException
    {
        if (super.cachedEndpoint == null)
        {
            throw new org.apache.axis.NoEndPointException();
        }
        org.apache.axis.client.Call _call = createCall();
        _call.setOperation(_operations[0]);
        _call.setUseSOAPAction(true);
        _call.setSOAPActionURI("");
        _call.setEncodingStyle(null);
        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
        _call.setOperationName(new javax.xml.namespace.QName("", "PromoPackRequest"));

        setRequestHeaders(_call);
        setAttachments(_call);
        try
        { // This line throws exception.
            java.lang.Object _resp = _call.invoke(new java.lang.Object[] { promoPackRequestBO.value });

            if (_resp instanceof java.rmi.RemoteException)
            {
                throw (java.rmi.RemoteException) _resp;
            }
            else
            {
                extractAttachments(_call);
                java.util.Map _output;
                _output = _call.getOutputParams();
                try
                {
                    promoPackRequestBO.value = (com.ibm.idea.PromoPackTraderService.RequestResponseType) _output
                            .get(new javax.xml.namespace.QName("http://idea.ibm.com/PromoPackTraderService",
                                    "PromoPackRequestBO"));
                }
                catch (java.lang.Exception _exception)
                {
                    promoPackRequestBO.value = (com.ibm.idea.PromoPackTraderService.RequestResponseType) org.apache.axis.utils.JavaUtils
                            .convert(_output.get(new javax.xml.namespace.QName(
                                    "http://idea.ibm.com/PromoPackTraderService", "PromoPackRequestBO")),
                                    com.ibm.idea.PromoPackTraderService.RequestResponseType.class);
                }
            }
        }
        catch (org.apache.axis.AxisFault axisFaultException)
        {
            System.out.println("Axis: Resp MEssg: " + _call.getResponseMessage());
            extractAttachments(_call);
            java.util.Map _output;
            _output = _call.getOutputParams();
            try
            {
                promoPackRequestBO.value = (com.ibm.idea.PromoPackTraderService.RequestResponseType) _output
                        .get(new javax.xml.namespace.QName("http://idea.ibm.com/PromoPackTraderService",
                                "PromoPackRequestBO"));
            }
            catch (java.lang.Exception _exception)
            {
                promoPackRequestBO.value = (com.ibm.idea.PromoPackTraderService.RequestResponseType) org.apache.axis.utils.JavaUtils
                        .convert(_output.get(new javax.xml.namespace.QName(
                                "http://idea.ibm.com/PromoPackTraderService", "PromoPackRequestBO")),
                                com.ibm.idea.PromoPackTraderService.RequestResponseType.class);
            }
            throw axisFaultException;
        }
    }
编辑-II

我的WSDL-

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="PromoPackTraderService" targetNamespace="http://idea.ibm.com/PromoPackTraderService" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://idea.ibm.com/PromoPackTraderService" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <wsdl:types>
        <xsd:schema targetNamespace="http://idea.ibm.com/PromoPackTraderService" xmlns:mrm="http://idea.ibm.com/PromoPackTraderService">
            <xsd:include schemaLocation="PromoPackRequestBO.xsd" />
        </xsd:schema>
    </wsdl:types>
    <wsdl:message name="PromoPackRequest_in">
        <wsdl:part element="tns:PromoPackRequestBO" name="PromoPackRequestBO" />
    </wsdl:message>
    <wsdl:message name="PromoPackRequest_out">
        <wsdl:part element="tns:PromoPackRequestBO" name="PromoPackRequestBO" />
    </wsdl:message>
    <wsdl:portType name="PromoPackTraderServiceMsgPortType">
        <wsdl:operation name="PromoPackRequest">
            <wsdl:input message="tns:PromoPackRequest_in" name="PromoPackRequest_Input" />
            <wsdl:output message="tns:PromoPackRequest_out" name="PromoPackRequest_Output" />
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="PromoPackTraderServiceMsgSOAP_HTTP_Binding" type="tns:PromoPackTraderServiceMsgPortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
        <wsdl:operation name="PromoPackRequest">
            <soap:operation soapAction="" />
            <wsdl:input name="PromoPackRequest_Input">
                <soap:body parts="PromoPackRequestBO" use="literal" />
            </wsdl:input>
            <wsdl:output name="PromoPackRequest_Output">
                <soap:body parts="PromoPackRequestBO" use="literal" />
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="PromoPackTraderServiceMsgSOAP_HTTP_Service">
        <wsdl:port binding="tns:PromoPackTraderServiceMsgSOAP_HTTP_Binding" name="SOAP_HTTP_Port">
            <soap:address location="http://localhost:7800/PromoPackTraderServiceMsgSOAP_HTTP_Service" />
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
相关XSD文件-

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:complexType name="RequestResponseType">
        <xsd:sequence>
            <xsd:element name="messageHeader">
                <xsd:complexType>
                    <xsd:sequence maxOccurs="1" minOccurs="1">
                        <xsd:element name="headerInfo">
                            <xsd:complexType>
                                <xsd:sequence maxOccurs="1" minOccurs="1">
                                    <xsd:element name="CIRCLE_ID" type="xsd:string" />
                                    <xsd:element name="CHANNEL_TYPE" type="xsd:string" />
                                    <xsd:element name="TRACE_ID" type="xsd:string" />
                                    <xsd:element name="LOB" type="xsd:string" />
                                    <xsd:element name="OPERATION_NAME" type="xsd:string" />
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                        <xsd:element minOccurs="0" name="errorInfo">
                            <xsd:complexType>
                                <xsd:sequence maxOccurs="1" minOccurs="1">
                                    <xsd:element name="ERRORCODE" type="xsd:string" />
                                    <xsd:element name="ERRORMESSAGE" type="xsd:string" />
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                        <xsd:element minOccurs="0" name="operationStatusCode">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="OPERATION_STATUS_CODE" type="xsd:string" />
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="messageBody">
                <xsd:complexType>
                    <xsd:sequence maxOccurs="1" minOccurs="1">
                        <xsd:element name="businessInputData">
                            <xsd:complexType>
                                <xsd:sequence maxOccurs="1" minOccurs="1">
                                    <xsd:sequence maxOccurs="1" minOccurs="1">
                                        <xsd:element name="msisdnNumber" type="xsd:string" />
                                        <xsd:element name="promoId" type="xsd:string" />
                                        <xsd:element minOccurs="0" name="typeOfOperation" type="xsd:string" />
                                        <xsd:element minOccurs="0" name="effectiveFromDate" type="xsd:string" />
                                        <xsd:element minOccurs="0" name="productId" type="xsd:string" />
                                        <xsd:element minOccurs="0" name="remarks" type="xsd:string" />
                                        <xsd:element minOccurs="0" name="param1" type="xsd:string" />
                                        <xsd:element minOccurs="0" name="param2" type="xsd:string" />
                                        <xsd:element minOccurs="0" name="param3" type="xsd:string" />
                                    </xsd:sequence>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                        <xsd:element minOccurs="1" name="businessOutputData">
                            <xsd:complexType>
                                <xsd:sequence maxOccurs="1" minOccurs="1">
                                    <xsd:element minOccurs="0" name="srNo" type="xsd:string" />
                                    <xsd:element minOccurs="0" name="param1" type="xsd:string" />
                                    <xsd:element minOccurs="0" name="param2" type="xsd:string" />
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="PromoPackRequestBO" type="RequestResponseType">
    </xsd:element>
    <xsd:element name="RequestResponseType" type="RequestResponseType">
    </xsd:element>
</xsd:schema>

听起来您想在代码中将namespaceAware设置为false:您可以发布您的客户端代码吗?相关部分。是的,您可以发布您的wsdl…让我们看看..发布相关的客户端代码和wsdl/XSD
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="PromoPackTraderService" targetNamespace="http://idea.ibm.com/PromoPackTraderService" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://idea.ibm.com/PromoPackTraderService" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <wsdl:types>
        <xsd:schema targetNamespace="http://idea.ibm.com/PromoPackTraderService" xmlns:mrm="http://idea.ibm.com/PromoPackTraderService">
            <xsd:include schemaLocation="PromoPackRequestBO.xsd" />
        </xsd:schema>
    </wsdl:types>
    <wsdl:message name="PromoPackRequest_in">
        <wsdl:part element="tns:PromoPackRequestBO" name="PromoPackRequestBO" />
    </wsdl:message>
    <wsdl:message name="PromoPackRequest_out">
        <wsdl:part element="tns:PromoPackRequestBO" name="PromoPackRequestBO" />
    </wsdl:message>
    <wsdl:portType name="PromoPackTraderServiceMsgPortType">
        <wsdl:operation name="PromoPackRequest">
            <wsdl:input message="tns:PromoPackRequest_in" name="PromoPackRequest_Input" />
            <wsdl:output message="tns:PromoPackRequest_out" name="PromoPackRequest_Output" />
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="PromoPackTraderServiceMsgSOAP_HTTP_Binding" type="tns:PromoPackTraderServiceMsgPortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
        <wsdl:operation name="PromoPackRequest">
            <soap:operation soapAction="" />
            <wsdl:input name="PromoPackRequest_Input">
                <soap:body parts="PromoPackRequestBO" use="literal" />
            </wsdl:input>
            <wsdl:output name="PromoPackRequest_Output">
                <soap:body parts="PromoPackRequestBO" use="literal" />
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="PromoPackTraderServiceMsgSOAP_HTTP_Service">
        <wsdl:port binding="tns:PromoPackTraderServiceMsgSOAP_HTTP_Binding" name="SOAP_HTTP_Port">
            <soap:address location="http://localhost:7800/PromoPackTraderServiceMsgSOAP_HTTP_Service" />
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:complexType name="RequestResponseType">
        <xsd:sequence>
            <xsd:element name="messageHeader">
                <xsd:complexType>
                    <xsd:sequence maxOccurs="1" minOccurs="1">
                        <xsd:element name="headerInfo">
                            <xsd:complexType>
                                <xsd:sequence maxOccurs="1" minOccurs="1">
                                    <xsd:element name="CIRCLE_ID" type="xsd:string" />
                                    <xsd:element name="CHANNEL_TYPE" type="xsd:string" />
                                    <xsd:element name="TRACE_ID" type="xsd:string" />
                                    <xsd:element name="LOB" type="xsd:string" />
                                    <xsd:element name="OPERATION_NAME" type="xsd:string" />
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                        <xsd:element minOccurs="0" name="errorInfo">
                            <xsd:complexType>
                                <xsd:sequence maxOccurs="1" minOccurs="1">
                                    <xsd:element name="ERRORCODE" type="xsd:string" />
                                    <xsd:element name="ERRORMESSAGE" type="xsd:string" />
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                        <xsd:element minOccurs="0" name="operationStatusCode">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="OPERATION_STATUS_CODE" type="xsd:string" />
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="messageBody">
                <xsd:complexType>
                    <xsd:sequence maxOccurs="1" minOccurs="1">
                        <xsd:element name="businessInputData">
                            <xsd:complexType>
                                <xsd:sequence maxOccurs="1" minOccurs="1">
                                    <xsd:sequence maxOccurs="1" minOccurs="1">
                                        <xsd:element name="msisdnNumber" type="xsd:string" />
                                        <xsd:element name="promoId" type="xsd:string" />
                                        <xsd:element minOccurs="0" name="typeOfOperation" type="xsd:string" />
                                        <xsd:element minOccurs="0" name="effectiveFromDate" type="xsd:string" />
                                        <xsd:element minOccurs="0" name="productId" type="xsd:string" />
                                        <xsd:element minOccurs="0" name="remarks" type="xsd:string" />
                                        <xsd:element minOccurs="0" name="param1" type="xsd:string" />
                                        <xsd:element minOccurs="0" name="param2" type="xsd:string" />
                                        <xsd:element minOccurs="0" name="param3" type="xsd:string" />
                                    </xsd:sequence>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                        <xsd:element minOccurs="1" name="businessOutputData">
                            <xsd:complexType>
                                <xsd:sequence maxOccurs="1" minOccurs="1">
                                    <xsd:element minOccurs="0" name="srNo" type="xsd:string" />
                                    <xsd:element minOccurs="0" name="param1" type="xsd:string" />
                                    <xsd:element minOccurs="0" name="param2" type="xsd:string" />
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="PromoPackRequestBO" type="RequestResponseType">
    </xsd:element>
    <xsd:element name="RequestResponseType" type="RequestResponseType">
    </xsd:element>
</xsd:schema>