CXF spring jaxws:endpoint jaxws:server 区别 与 关系


首先,它们都用于服务器端配置。


其次,jaxws:端点来自于jaxws API,它用于配置org.apache.cxf.jaxws.endpointImpl继承javax.xml.ws.Endpoint。


jaxws:服务器用于配置来自Xfire API的JaxWsServerFactoryBean。

对于具有使用经验的Xfire的用户,我认为他们更喜欢使用jaxws:server标记。


对于JAXWS API爱好者,JAXWS:端点将是他们的首选。


jaxws:端点和jaxws:服务器之间并没有太大的差别,因为EndpointImpl是一个包装类JaxWsServerFactoryBean。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将CXF SOAP消息中的`<SOAP-ENV:Header>`转换成`<SOAP-ENV:Header>`,可以使用CXF提供的拦截器来实现。 首先,创建一个拦截器类,继承自AbstractSoapInterceptor类,并实现handleRequest和handleResponse方法。在handleRequest方法中,将CXF SOAP消息中的`<SOAP-ENV:Header>`节点替换为`<SOAP-ENV:Header>`节点;在handleResponse方法中,将`<SOAP-ENV:Header>`节点替换为`<SOAP-ENV:Header>`节点。 ```java public class SoapHeaderInterceptor extends AbstractSoapInterceptor { public SoapHeaderInterceptor() { super(Phase.PRE_PROTOCOL); } @Override public void handleMessage(SoapMessage message) throws Fault { // 获取SOAP消息的头部 Header header = message.getHeaders().get(0); // 获取SOAP消息的DOM节点 Element headerElement = (Element) header.getObject(); // 创建新的SOAP消息头节点 Element newHeaderElement = headerElement.getOwnerDocument().createElementNS("http://schemas.xmlsoap.org/soap/envelope/", "SOAP-ENV:Header"); // 复制原来的SOAP消息头节点的所有子节点到新的SOAP消息头节点中 NodeList childNodes = headerElement.getChildNodes(); for (int i = 0; i < childNodes.getLength(); i++) { newHeaderElement.appendChild(headerElement.getOwnerDocument().importNode(childNodes.item(i), true)); } // 将新的SOAP消息头节点替换原来的SOAP消息头节点 header.setObject(newHeaderElement); } @Override public void handleFault(SoapMessage message) { // do nothing } } ``` 然后,在CXF服务端和客户端的配置文件中,添加该拦截器: ```xml <jaxws:endpoint id="exampleService" implementor="com.example.ExampleServiceImpl" address="/exampleService"> <jaxws:inInterceptors> <bean class="com.example.SoapHeaderInterceptor" /> </jaxws:inInterceptors> </jaxws:endpoint> <jaxws:client id="exampleClient" serviceClass="com.example.ExampleService" address="http://localhost:8080/exampleService"> <jaxws:outInterceptors> <bean class="com.example.SoapHeaderInterceptor" /> </jaxws:outInterceptors> </jaxws:client> ``` 这样,在CXF SOAP消息发送和接收时,就可以将`<SOAP-ENV:Header>`转换成`<SOAP-ENV:Header>`了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值