当前位置: 首页 > 知识库问答 >
问题:

在服务器端CXF服务实现中设置SOAP寻址标头

陈实
2023-03-14

我在Apache CXF中实现了web服务。有没有办法使用AddressingProperties将SOAP头设置为请求(服务器端)?

这对我有用:

List<Header> headers = new ArrayList<Header>();
Header messageIDHeader = new Header(new QName("http://www.w3.org/2005/08/addressing", "MessageID", "wsa"), some_messageID, new JAXBDataBinding(String.class));
headers.add(messageIDHeader);
Header relatesToHeader = new Header(new QName("http://www.w3.org/2005/08/addressing", "RelatesTo", "wsa"), some_relatesTo_ID, new JAXBDataBinding(String.class));
headers.add(relatesToHeader);
wsContext.getMessageContext().put(Header.HEADER_LIST, headers);

但我想使用org。阿帕奇。cxf。ws。寻址。AddressingProperties-类似这样的内容:

RelatesToType soapRelatesTo = new RelatesToType();
soapRelatesTo.setValue(some_relatesTo_ID);
soapAddressingHeaders.setRelatesTo(soapRelatesTo);

AttributedURIType soapMsgId = new AttributedURIType();
soapMsgId.setValue(some_messageID);
soapAddressingHeaders.setMessageID(soapMsgId);

我如何将其传递给请求?我无法通过MessageContext进行设置

共有1个答案

陆弘光
2023-03-14

将soapAddressingHeaders添加到MessageContext

messageContext.put("http://www.w3.org/2005/08/addressing", soapAddressingHeaders);

工作正常,但我忘记为CXF启用WS-A寻址:

<jaxws:features>
        <wsa:addressing xmlns:wsa="http://cxf.apache.org/ws/addressing"/>
</jaxws:features>
 类似资料:
  • Debug 字段 该设置默认值是 false,当发生错误时,只返回错误信息本身。 当该字段设置为 true 时,当发生 panic 时,会将整个 panic 的错误堆栈信息返回给客户端,在用户进行 hprose 服务开发时,该设置可以帮助你快速定位错误位置。 ErrorDelay 字段 该设置为整型值,默认值为 10 秒。 该字段表示在调用执行时,如果发生异常,将延时一段时间后再返回给客户端。 在

  • “destination”参数用于Spring PathMatcher(路径分隔符为冒号:)以确定实例是否处理该消息。使用上述示例,“/ bus / refresh?destination = customers:**”将针对“客户”服务的所有实例,而不管配置文件和端口设置为ApplicationContext ID。

  • 我是Soap寻址的新手,我必须在Apache cxf camel中使用wsa寻址。 这是apache cxf从wsdl创建的服务endpoint 服务请求时出现问题,在soap请求中,这是soap2:Header中wsa的命名空间值 我面临的问题是,传入请求中的ReplyTo标头的值低于 然后,cxf侦听器尝试回调上述地址,但由于“405 Method not allowed”而失败,我的功能无法

  • 问题内容: 最近,我在我的应用程序的最新版本中集成了FCM,但是我以前的应用程序版本使用的是GCM。关于是否需要分隔GCM和FCM的编写背景cron的任何想法? 我的先前版本为My App 4.0,并使用了GCM;当前版本为My App 4.1,并集成了FCM。我想同时发送版本和用户的推送通知。那么我们是否需要为GCM和FCM编写服务器端程序对吗?关于此集成的任何想法。 FCM服务器端API:ht

  • 问题内容: 我们正在尝试在我们的JAX Web服务中执行安全性实施,并在标头中传递用户名和密码,如下所示。 在Java中,我们正在尝试检索用户名和密码,但是我们不确定该怎么做,因为它是Soap Header的一部分,并且我们之前没有检索过Header信息。 我们正在尝试做上述操作并获取header元素,但它没有返回值。任何有关检索用户名和密码的帮助将不胜感激。 问题答案: 你可以阅读从SOAP头的

  • 我目前正在实现soap服务并且我需要从另一个soap服务(服务A)调用一个soap服务(服务B)。从服务A中,如何将输出SOAP请求的HTTP头而不是SOAP头设置到服务B。 目前我正在使用JaxWsDynamicClientFactory,