我有一个联邦政府(即极端安全意识) SOAP服务,为了一个项目我必须连接到它。我所遇到的问题是,我得到了可怕的
SEVERE: SOAP header missing
org.apache.axis2.AxisFault: SOAP header missing
at org.apache.rampart.handler.RampartReceiver.setFaultCodeAndThrowAxisFault(RampartReceiver.java:180)可抛出的堆栈跟踪
我使用wsdl2code生成客户端桩模块,并调用
GetResponseTypeDef resp = stub.getRequest(requestypdef, headerTypeDef);headerTypeDef似乎正确地填充了服务请求的标头信息。
我想捕获发出的原始、明文本SOAP xml请求,但是端点使用https,而我对服务的可见性为零。所以wireshark真的不是一个选择。
我在linux上使用的是: axis2 1.5.4 rampart 1.5.1 wss4j 1.5.10
我非常确定我正在发送SOAP标头,但我需要证明这一点。这个服务几乎使用了WS-*的每一个子项目,包括安全性、策略、加密和数字签名,所以只有大约100个地方会导致这件事失败。
任何帮助都将不胜感激。
发布于 2012-02-15 03:38:00
设置一个代理服务,如Charles,并将其重定向到您的HTTPS端点。这样,您就可以在调用被加密之前捕获它,并输出XML有效负载。顺便说一句,你可能想要提高你的接受率。
发布于 2012-02-15 03:44:34
是否可以添加xml来查看通过网络发送的org.apache.axis.transport内容?例如,她就是我在log4j配置中定义的:
<category name="org.apache.axis.transport">
<priority value="DEBUG"/>
<appender-ref ref="CONSOLE"/>
</category>https://stackoverflow.com/questions/9283031
复制相似问题