我正在使用 Spring-WS 发布一个 SOAP Web 服务,并且想知道设计 WSDL 的方法。
如果我的服务必须考虑四个操作(例如启动、更新、暂停和重新启动服务),我应该拥有一个带有一个操作的 WSDL(例如 EntertainmentService)并将这些操作作为请求属性还是应该定义一个 WSDL与多个操作。
<request>
<type><!-- start | update | suspend | restart --></type>
<name></name>
<address></address>
<services>
<tv></tv>
<internet></internet>
<phone></phone>
</services>
如果建议使用一个具有多个操作的 WSDL,我如何指定 Spring-WS 中的操作列表。目前,我的 spring servlet 上下文有一个 DefaultWsdl11Definition 并且 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>
如果所有四个操作都使用相同的 WSDL,那么客户端(使用 Web 服务)进行一项操作(使用不同的 )是否比调用多个操作更容易。第二种方法有什么优势(每种请求类型都有不同的操作)。