1

私は Web サービスの初心者です。wsdl から Weblogic Web サービスを作成しようとしています。

wsdl 内に操作が 1 つしかない場合、サービスを操作できますが、2 つ目の操作を追加すると、エラー Cannot find dispatch method for Request=[SOAPAction="",Payload={//domain . portType とバインディングに操作を追加するだけです。. 何が欠けているのか本当にわかりません。

portType と binding に操作を追加しました。. これ以外に何か変更する必要がありますか?

ここに私のwsdlがあります

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is 
JAX-WS RI 2.2.6hudson-86 svn-revision#12773. -->
<definitions targetNamespace="http://service.training.indus.com/"
name="CalculatorService" xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsp="http://www.w3.org/ns/ws-policy"                 
xmlns:calSvc="http://service.training.indus.com/"
xmlns:calciInOut="http://domain.training.indus.com/"   
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<types>
    <xsd:schema>
        <xsd:import namespace="http://domain.training.indus.com/"
            schemaLocation="../xsd/CalculatorService_schema1.xsd" />
    </xsd:schema>
</types>
<message name="calciInputMsg">
    <part name="parameters" element="calciInOut:calciInputRequest" />
</message>
<message name="calciOutputMsg">
    <part name="parameters" element="calciInOut:calciOutputResponse" />
</message>
<portType name="CalculatorPort">
<operation name="multiply">       
    <inputwsam:Action="http://service.training.indus.com/Calculator/multiplyRequest"
            message="calSvc:calciInputMsg" />
   <output wsam:Action="http://service.training.indus.com/Calculator/multiplyResponse"
            message="calSvc:calciOutputMsg" />
    </operation>

    <operation name="addition">
<input wsam:Action="http://service.training.indus.com/Calculator/multiplyRequest"
            message="calSvc:calciInputMsg" />
        <output
    wsam:Action="http://service.training.indus.com/Calculator/multiplyResponse"
            message="calSvc:calciOutputMsg" />
    </operation>
</portType>
<binding name="CalculatorPortBinding" type="calSvc:CalculatorPort">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
        style="document" />
    <operation name="multiply">
        <soap:operation soapAction="" />
        <input>
            <soap:body use="literal" />
        </input>
        <output>
            <soap:body use="literal" />
        </output>
    </operation>
    <operation name="addition">
        <soap:operation soapAction="" />
        <input>
            <soap:body use="literal" />
        </input>
        <output>
            <soap:body use="literal" />
        </output>
    </operation>
</binding>
<service name="CalculatorService">
<port name="CalculatorSvcPort" binding="calSvc:CalculatorPortBinding"> 
<soap:address location="http://localhost:9010/TestTopDown/CalculatorService" />
    </port>
</service>
  </definitions>
4

1 に答える 1

-1

これが原因です: <soap:operation soapAction="" />

問題を解決するには、これをクラスのメソッドに入れます。

@WebMethod(action="add")

于 2014-11-11T17:34:54.980 に答える