我使用此代码登录到外部系统:
LoginResponse response = (LoginResponse) webServiceTemplate.marshalSendAndReceive(myRequest, new WebServiceMessageCallback() {
public void doWithMessage(WebServiceMessage message) {
((SoapMessage)message).setSoapAction("http://www.system.com//Authentication/Login");
}
});
我收到一种LoginResponse,但它没有价值。
LoginResponse类型仅包含:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "")
@XmlRootElement(name = "LoginResponse", namespace = "http://www.system.com/Authentication/")
public class LoginResponse {
}
我需要从标头访问UserAuth值,但这不包含在LoginResponse对象中。
SOAP 响应为:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<UserAuth xmlns="http://www.system.com/ws/">
<Value>234234k234jl2k</Value>
</UserAuth>
</soap:Header>
<soap:Body>
<LoginResponse xmlns="http://www.system.com/Authentication"/>
</soap:Body>
</soap:Envelope>
如何访问标题信息,在本例中是UserAuth值?
我是否需要使用更低层次的东西并从soap响应中解析所需的值?
更新:
我认为我需要使用SAAJ使用自定义SOAP请求(类似于java对WebService的SOAP请求)并处理响应。
我的理解是,虽然响应中的soap头是可选的,但是大多数客户端在使用SOAP时都使用这个头来发送身份验证类型信息。可能是wsdl或生成。类文件不正确,因此响应没有填写所有必填字段,在本例中是soap头。
我假设您在对登录操作的响应中收到的来自< code>UserAuth头的信息需要在对服务的后续请求中作为SOAP头(可能与received头相同)发送。如果是这种情况,那么您应该创建一个自定义的< code>ClientInterceptor并在您的< code>WebServiceTemplate中注册它。拦截器将从登录响应中提取头部,转换它(如果需要)并将其添加到后续请求中。
注意,这个拦截器应该是有状态的。因此,您需要为每个对话使用单独的< code>WebServiceTemplate实例。
问题内容: 尝试指定自定义的肥皂标题。不知道如何填充SoapEnvelope.headerOut属性。 到目前为止我的代码? 这是标题WSDL提取… 问题答案: headerOut是您需要构建的Element []。 像这样 然后将其添加到数组中。
我正在使用CXF Web客户端调用Soap Web服务。 WSDL2JAVA用于从wsdl生成Java代码。有来自soap头的信息,但生成的代码没有访问该头的方法。 如何通过CXF Web客户端获取标题信息?
我正在尝试使用Angular2和Http POST对SOAP web服务进行一个非常简单的调用。如果我使用POSTMAN发布相同的消息,只需将内容类型设置为text/xml即可。 对于Angular2,我得到了以下错误:- SEC7120:原点http://localhost:3004在Access Control Allow Origin标头中找不到 SCRIPT7002: XMLHttpReq
我在CentOS机器上启用标题中提到的模块时遇到了一些问题。 百胜安装php-mCrypt/php-soc/php-mysql工作正常,并提到它们已经安装,重新启动Apache后,似乎它们没有启用。 例如,我无法定位mcrypt.so,运行php--ini会给出: 这是在我放置extension=mcrypt之后。所以在php中。伊尼。
问题内容: 我正在使用Java开发基于Soap的Web服务。谁能让我知道如何认证使用Web服务的客户端? 谢谢。 问题答案: 最好但最复杂的可能是带有各种身份验证方法的WS- Security。但是它是最复杂的,并且对企业环境有利。它允许您创建端到端身份验证,并且有很多选项。您可以在简单情况下使用Web服务安全性UsernameToken配置文件 我不知道您使用什么库,但是这是一篇不错的文章,介绍
SOAP请求有一个服务endpoint和一个xsd文件。但是,没有wsdl文件。我如何从这里手动生成soap请求(作为字符串的xml请求)并将其发送到服务endpoint? 我在SO上找到了类似的答案。但这是针对C#和. NET的,任何针对Java的想法都会受到高度赞赏。