c# - 如何使用 org.apache.axis.client.Stub 和 java.rmi.Remote 在 Java 中发送 header 消息?

标签 c# java web-services soap wsdl

我有一个 wsdl,这个 wsdl 在 SOAPUI 中有一个像这样的请求消息:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"     xmlns:service="www.xxxxx.xx">
<soapenv:Header>
<service:SessionInfo>
<service:UserPassword>?</service:UserPassword>
</service:SessionInfo></soapenv:Header> 
<soapenv:Body>
<service:Method1>
<!--Optional:-->
<service:Arguments>
<service:Parameter1>?</service:Parameter1>
<service:Parameter2>?</service:Parameter2>
<!--Optional:-->
<service:Parameter3>?</service:Parameter3>
<!--Optional:-->
<service:Parameter4>?</service:Parameter4>
</service:Arguments>
</service:Method1></soapenv:Body></soapenv:Envelope>

我在用 Java 发送此 wsdl 的 header 消息时遇到问题。我在 C# 和 SOAPUI 中成功发送了请求消息。在 Java 中导入 wsdl 后,尽管我能够在 SOAPUI 和 C# 中访问,但我无法访问此请求的 header 部分。我只能在 Java 中访问此 wsdl 的正文部分,但无法在 Java 中访问soapenv:Header 部分。使用 org.apache.axis.client.Stub 和 java.rmi.Remote 是否可以解决此问题? 如何添加标题?谢谢。

最佳答案

您可以添加自定义 header ,如下所示:

 MessageContext responseMessageContext =  
           MessageContext.getCurrentMessageContext().getOperationContext().getMessageContext(  
                   WSDLConstants.MESSAGE_LABEL_OUT_VALUE);  
    List headers = new ArrayList();  
    headers.add(new Header(HTTPConstants.HEADER_CONTENT_ENCODING, "identity"));  
    responseMessageContext.setProperty(HTTPConstants.HTTP_HEADERS, headers);  

或者通过链接here以这种方式检查

关于c# - 如何使用 org.apache.axis.client.Stub 和 java.rmi.Remote 在 Java 中发送 header 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19534649/

相关文章:

java - 向一点移动时的圆碰撞 react

java - 未找到 JSF 方法,而应该是

java - Jersey Rest Web 服务返回对象列表,其中对象包含文件的字节数组

c# - 如何删除 Log Analytics 数据收集器 API 创建的自定义日志

c# - 上传文件到谷歌文档 : how to replace existing and how to upload and convert large doc?

c# - 使用 Web API 的模型绑定(bind)接口(interface)属性

java - webapp 和 web 服务之间的安全通信

C# DllImport MFC 扩展 DLL 和名称修改

java - 简单 Spring MVC 应用程序 - 配置文件中的错误

web-services - API按 Actor 或导演获取电影列表?