Web services 关于Spring和ApacheCXF的集成
在applicationcontext.xml文件中,我们有这样的Web services 关于Spring和ApacheCXF的集成,web-services,spring,cxf,Web Services,Spring,Cxf,在applicationcontext.xml文件中,我们有这样的 <bean id="vincent" class="com.bayer.vincent.service.vincent"/> <jaxws:endpoint id="vincentSOAP" implementor="#vincent" implementorClass="com.bayer.vincent.service.vincent" addres
<bean id="vincent" class="com.bayer.vincent.service.vincent"/>
<jaxws:endpoint
id="vincentSOAP"
implementor="#vincent"
implementorClass="com.bayer.vincent.service.vincent"
address="/vincent/soap"
bindingUri="http://schemas.xmlsoap.org/wsdl/soap/" />
这个定义是什么意思
我的问题是vincent类是如何被调用的???据我所知,已经创建了代理类,它将所有调用转发给真正的类 另请参见此处描述的所有
jaxws:endpoint
属性。CXF提供了一个帮助在此处轻松配置webservice端点的方法
如果实现者以#开头,那么CXF会假设
端点必须是正常的JAX-WS端点,即使用@Webservice注释进行注释,例如:
@WebService(serviceName="MemberService", endpointInterface="org.bk.memberservice.endpoint.MemberEndpoint", targetNamespace="http://bk.org/memberservice/")
现在,对uri-/vincent/soap的任何调用都将由CXF前端控制器(您可以在web.xml文件中注册)重定向:
CXF服务器
org.apache.cxf.transport.servlet.CXFServlet
1.
它为处理程序(在本例中为Springbean)维护有效负载uri的内部注册表,并适当地分派请求
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>