0

Spring-WS を使用して SOAP Web サービスを公開していますが、WSDL を設計するためのアプローチを知りたいです。

サービスが 4 つの操作 (サービスの開始、更新、一時停止、再起動など) を考慮する必要がある場合、1 つの操作 (たとえば、EntertainmentService) を持つ 1 つの WSDL を用意し、その操作を要求属性として取得する必要がありますか、それとも 1 つの WSDL を定義する必要がありますか?複数の操作で。

 <request>
     <type><!-- start | update | suspend | restart --></type>
     <name></name>
     <address></address>
     <services>
         <tv></tv>
         <internet></internet>
         <phone></phone>
     </services>

提案が複数の操作を持つ 1 つの WSDL を使用することである場合、Spring-WS で操作のリストを指定するにはどうすればよいですか。現在、Spring サーブレット コンテキストには DefaultWsdl11Definition が 1 つあり、実行時に WSDL が生成されます。

<bean id="EntertainmentService" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition" lazy-init="true">
    <property name="schema">
        <bean class="org.springframework.xml.xsd.SimpleXsdSchema">
            <property name="xsd" value="/WEB-INF/schemas/entertainmentService.xsd"/>    
        </bean>
    </property>
    <property name="portTypeName" value="EntertainmentService"/>
    <property name="locationUri" value="/endpoints"/>
</bean>

4 つの操作すべてが同じ WSDL を使用する場合、クライアント (Web サービスを使用) は、複数の操作を呼び出すよりも (異なる を使用して) 1 つの操作を行う方がはるかに簡単ですか。2 番目のアプローチに利点はありますか (要求の種類ごとに操作が異なります)。

4

1 に答える 1

0

あなたの質問は、Web サービスではなく概念設計です。一般に、各操作をアトミックに保つ方が良いと思います。あなたの場合、実行するアクションと同じ数の操作があることを意味します。

長期的には、日数を追加して「一時停止」アクションを変更したいとします (xx 日間で一時停止または xx 日間一時停止)。

  1. アクションサスペンド関連の部分を修正するだけです。
  2. 中断アクションをテストするだけで済みます

spring web-service を使用するときは、静的 wsdl を使用しました。xsd を変更すると、Spring はいくつかのアクション/操作があることを認識します。

于 2013-03-28T18:04:50.430 に答える