我可以在java轴2客户端上为https捕获明文请求SOAP信封吗?

时间:2012-02-14 19:31:52

标签: java soap https axis2

我有一个联邦政府(即极其安全的良心)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      城墙1.5.1      wss4j 1.5.10

我很确定我发送了SOAP标头,但我需要证明它。该服务几乎使用了WS- *的每个子项目,包括安全性,策略,加密和数字签名,因此只有大约100个地方可能导致此事件失败。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

设置Charles之类的代理服务,并将其重定向到您的HTTPS端点。这样,您可以在加密之前捕获调用并打印出XML有效负载。另外,您可能希望处理您的接受率。

答案 1 :(得分:0)

是否可以添加org.apache.axis.transport记录器以查看通过网络发送的xml?例如,她就是我在log4j配置中定义它的方式:

<category name="org.apache.axis.transport">
    <priority value="DEBUG"/>
    <appender-ref ref="CONSOLE"/>
</category>