如何在发送之前从Java请求对象获取XML文件。Web服务SOAP

如何在发送之前从Java请求对象获取XML文件。Web服务SOAP,java,xml,web-services,soap,wsdl,Java,Xml,Web Services,Soap,Wsdl,我正在为在线Web服务构建Java应用程序,我们称之为应用程序。我从第二方获得了WSDL文件,因此我可以与他们的应用程序通信,我们称之为应用程序B 我从WSDL文件生成所需的Java类,这些类是请求和响应类。应用程序A将在设置所需参数并从应用程序B中排除响应对象之后发送一些请求对象 连接已建立,并且应用程序A和B正在相互通信 问题: 在将请求对象发送到应用程序B之前,如何从应用程序A获取请求对象的xml数据文件或文本 如前所述,连接是通过将Java对象作为请求传递来完成的,我知道在某些情况下,该

我正在为在线Web服务构建Java应用程序,我们称之为应用程序。我从第二方获得了WSDL文件,因此我可以与他们的应用程序通信,我们称之为应用程序B

我从WSDL文件生成所需的Java类,这些类是请求和响应类。应用程序A将在设置所需参数并从应用程序B中排除响应对象之后发送一些请求对象

连接已建立,并且应用程序A和B正在相互通信

问题:

在将请求对象发送到应用程序B之前,如何从应用程序A获取请求对象的xml数据文件或文本

如前所述,连接是通过将Java对象作为请求传递来完成的,我知道在某些情况下,该请求将转换为xml文件。如何得到它

--编辑--

缺少可能导致混淆的重要信息


我是使用Axis框架生成Java类的,我没有太多的声誉发表评论,所以我的回答是:如果您还没有使用框架,如果您想在发送应用程序之前捕获请求,你可以使用一些内置的拦截器来实现这一点,或者你可以创建一个具有正确阶段的自定义拦截器,例如post marshal(后期封送)

我没有太多的声誉来发表评论,因此我的回答是:如果你还没有使用一些框架,如果你想在发送应用程序之前捕获请求,您可以使用一些内置的拦截器来实现这一点,也可以创建一个具有正确阶段的自定义拦截器,例如post marshal

通过在bindingStub类中添加以下语句来解决问题,该类是从您尝试访问的web服务的WSDL文件自动生成的

String request = _call.getMessageContext().getRequestMessage().getSOAPPartAsString();
String response = _call.getMessageContext().getResponseMessage().getSOAPPartAsString();
这些语句应该放在下面的方法调用_call.invoke之后,否则将得到NullPointerException


_call是一个类型为org.apache.axis.client.Cal的变量,由axis自动生成。通过在bindingStub类中添加以下语句可以解决此问题,该类是从您尝试访问的web服务的WSDL文件自动生成的

String request = _call.getMessageContext().getRequestMessage().getSOAPPartAsString();
String response = _call.getMessageContext().getResponseMessage().getSOAPPartAsString();
这些语句应该放在下面的方法调用_call.invoke之后,否则将得到NullPointerException


_call是org.apache.axis.client.Cal类型的变量,由axis自动生成

是的,apache CXF是解决这个编程问题的好工具。好建议。@Namphibian@Raul,我对apachecxf没有足够的知识,时间对我来说是至关重要的。如有其他建议,将不胜感激。应用程序中的每件事情都正常工作,请求的XML文件用于测试和监视目的,它对编程不重要,但对测试很重要。是的,Apache CXF是解决这个编程问题的一个很好的工具。好建议。@Namphibian@Raul,我对apachecxf没有足够的知识,时间对我来说是至关重要的。如有其他建议,将不胜感激。应用程序中的每件事情都正常工作,请求的XML文件用于测试和监视目的,它对编程不重要,但对测试很重要。要测试和获取示例消息,请使用SOAP UI实用程序。很简单。将在几分钟内完成您需要的操作。要测试和获取示例消息,请使用SOAPUI实用程序。很简单。我会在几分钟内完成你需要的工作。