我发现用于定义spring webservice的XML配置是非常困难和冗余的。
例如:
展示WSDL
<bean id="addService" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition" p:portTypeName="add" p:locationUri="http://localhost:9080/WebServiceExample/" p:requestSuffix="-request" p:responseSuffix="-response"> <property name="schema"> <bean class="org.springframework.xml.xsd.SimpleXsdSchema" p:xsd="classpath:/WEB-INF/Addition.xsd" /> </property> <property name="targetNamespace" value="addition.apps" />
和JAXB上下文(定义marshaller和unmarshallers)
<bean class="org.springframework.ws.server.endpoint.adapter.GenericMarshallingMethodEndpointAdapter"> <property name="marshaller" ref="marshaller" /> <property name="unmarshaller" ref="marshaller" /> </bean> <bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> <property name="contextPath" value="apps.addition"></property> </bean> <bean id="wsTemplate" class="org.springframework.ws.client.core.WebServiceTemplate"> <property name="marshaller" ref="marshaller" /> <property name="unmarshaller" ref="marshaller" /> </bean>
假设我需要在应用程序中实现100个Web服务,然后涉及的复杂性是多少。
你能否建议我采用适当的方法来减少配置。任何注释驱动的方法?
提前致谢
答案 0 :(得分:1)
JAX-WS和JAXB都支持注释,并受Spring Framework支持
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/remoting.html
JAX-WS(很久以前)使用Spring配置
的参考实现http://www.springsource.org/node/396
有关JAX-WS的更多信息 http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/
Spring WS也有自己的注释支持
http://static.springsource.org/spring-ws/site/reference/html/server.html
更多关于Spring WS和JAX-WS之间的区别
http://forum.springsource.org/showthread.php?77968-Spring-WS-vs-JAX-WS
如果您因为“合同优先”方法而喜欢Spring WS,那么请看一下
http://rphgoossens.wordpress.com/2011/02/20/developing-a-contract-first-jax-ws-webservice/
答案 1 :(得分:0)
Springboot提供了支持创建Web服务的简便方法。 减少了像spring mvc(xml configuration)这样的配置部分。