0

EclipseでJavaEE開発者向けのJavaクラスを作成し、Webサービスウィザードを使用してWebサービスとして利用できるようにしました。

Javaクライアントからメソッドを呼び出そうとしているので、soapアクションと名前空間が必要ですが、メソッドのSOAPアクションが見つかりません。名前空間はdefaultnamespaceに設定されます。SOAPアクションURLはどうあるべきですか?それらを手動で設定する必要がありますが、Eclipseでのクライアントテストはうまくいきます。

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://DefaultNamespace" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://DefaultNamespace" xmlns:intf="http://DefaultNamespace" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)-->
 <wsdl:types>
  <schema elementFormDefault="qualified" targetNamespace="http://DefaultNamespace" xmlns="http://www.w3.org/2001/XMLSchema">
   <element name="login">
    <complexType>
     <sequence>
      <element name="email" type="xsd:string"/>
      <element name="passwd" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="loginResponse">
    <complexType>
     <sequence>
      <element name="loginReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="getCourses">
    <complexType/>
   </element>
   <element name="getCoursesResponse">
    <complexType>
     <sequence>
      <element name="getCoursesReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="getCourseMarks">
    <complexType>
     <sequence>
      <element name="courseID" type="xsd:int"/>
     </sequence>
    </complexType>
   </element>
   <element name="getCourseMarksResponse">
    <complexType>
     <sequence>
      <element name="getCourseMarksReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="getStudentMarks">
    <complexType>
     <sequence>
      <element name="id" type="xsd:int"/>
     </sequence>
    </complexType>
   </element>
   <element name="getStudentMarksResponse">
    <complexType>
     <sequence>
      <element name="getStudentMarksReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="listTopics">
    <complexType/>
   </element>
   <element name="listTopicsResponse">
    <complexType>
     <sequence>
      <element name="listTopicsReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="getTopicRegistrants">
    <complexType>
     <sequence>
      <element name="topicName" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="getTopicRegistrantsResponse">
    <complexType>
     <sequence>
      <element name="getTopicRegistrantsReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
  </schema>
 </wsdl:types>

   <wsdl:message name="getStudentMarksRequest">

      <wsdl:part element="impl:getStudentMarks" name="parameters">

      </wsdl:part>

   </wsdl:message>

   <wsdl:message name="listTopicsResponse">

      <wsdl:part element="impl:listTopicsResponse" name="parameters">

      </wsdl:part>

   </wsdl:message>

   <wsdl:message name="getCourseMarksRequest">

      <wsdl:part element="impl:getCourseMarks" name="parameters">

      </wsdl:part>

   </wsdl:message>

   <wsdl:message name="getCourseMarksResponse">

      <wsdl:part element="impl:getCourseMarksResponse" name="parameters">

      </wsdl:part>

   </wsdl:message>

   <wsdl:message name="getCoursesResponse">

      <wsdl:part element="impl:getCoursesResponse" name="parameters">

      </wsdl:part>

   </wsdl:message>

   <wsdl:message name="getTopicRegistrantsResponse">

      <wsdl:part element="impl:getTopicRegistrantsResponse" name="parameters">

      </wsdl:part>

   </wsdl:message>

   <wsdl:message name="getCoursesRequest">

      <wsdl:part element="impl:getCourses" name="parameters">

      </wsdl:part>

   </wsdl:message>

   <wsdl:message name="getTopicRegistrantsRequest">

      <wsdl:part element="impl:getTopicRegistrants" name="parameters">

      </wsdl:part>

   </wsdl:message>

   <wsdl:message name="listTopicsRequest">

      <wsdl:part element="impl:listTopics" name="parameters">

      </wsdl:part>

   </wsdl:message>

   <wsdl:message name="getStudentMarksResponse">

      <wsdl:part element="impl:getStudentMarksResponse" name="parameters">

      </wsdl:part>

   </wsdl:message>

   <wsdl:message name="loginRequest">

      <wsdl:part element="impl:login" name="parameters">

      </wsdl:part>

   </wsdl:message>

   <wsdl:message name="loginResponse">

      <wsdl:part element="impl:loginResponse" name="parameters">

      </wsdl:part>

   </wsdl:message>

   <wsdl:portType name="Services">

      <wsdl:operation name="login">

         <wsdl:input message="impl:loginRequest" name="loginRequest">

       </wsdl:input>

         <wsdl:output message="impl:loginResponse" name="loginResponse">

       </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getCourses">

         <wsdl:input message="impl:getCoursesRequest" name="getCoursesRequest">

       </wsdl:input>

         <wsdl:output message="impl:getCoursesResponse" name="getCoursesResponse">

       </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getCourseMarks">

         <wsdl:input message="impl:getCourseMarksRequest" name="getCourseMarksRequest">

       </wsdl:input>

         <wsdl:output message="impl:getCourseMarksResponse" name="getCourseMarksResponse">

       </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getStudentMarks">

         <wsdl:input message="impl:getStudentMarksRequest" name="getStudentMarksRequest">

       </wsdl:input>

         <wsdl:output message="impl:getStudentMarksResponse" name="getStudentMarksResponse">

       </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="listTopics">

         <wsdl:input message="impl:listTopicsRequest" name="listTopicsRequest">

       </wsdl:input>

         <wsdl:output message="impl:listTopicsResponse" name="listTopicsResponse">

       </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getTopicRegistrants">

         <wsdl:input message="impl:getTopicRegistrantsRequest" name="getTopicRegistrantsRequest">

       </wsdl:input>

         <wsdl:output message="impl:getTopicRegistrantsResponse" name="getTopicRegistrantsResponse">

       </wsdl:output>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="ServicesSoapBinding" type="impl:Services">

      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="login">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="loginRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="loginResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getCourses">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getCoursesRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getCoursesResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getCourseMarks">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getCourseMarksRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getCourseMarksResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getStudentMarks">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getStudentMarksRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getStudentMarksResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="listTopics">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="listTopicsRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="listTopicsResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getTopicRegistrants">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getTopicRegistrantsRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getTopicRegistrantsResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="ServicesService">

      <wsdl:port binding="impl:ServicesSoapBinding" name="Services">

         <wsdlsoap:address location="http://localhost:8080/semisterproject/services/Services"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>
4

1 に答える 1

0

SOAP アクションは、Web サービスを呼び出すために必ずしも必要ではありません...操作選択アルゴリズムの実装に依存します (たとえば、要求本文の構成を使用できます)。ただし、生成された Eclipse コードがアノテーションを使用している場合は、@WebMethod(action="MyAction") のように、@WebMethod アノテーションの 'action' 属性を使用して、問題のメソッドに必要な SOAP アクションを指定できるはずです。http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=%2Fcom.ibm.websphere.wsfep.multiplatform.doc%2Finfo%のアドレスで、ちょっとした資料を見つけることができます。2Fae%2Fae%2Frwbs_jaxwsannotations.html これで問題が解決しない場合は、関連するコードを投稿して追加のコンテキストを提供してください。

于 2012-05-28T04:02:42.420 に答える