用Java编写Soap请求

用Java编写Soap请求,java,soap,request,Java,Soap,Request,我有一个wsdl文件和一个关于web服务提供商的每个请求和响应中所有元素的详细文档。我的工作是编写大约40个请求并解析相应的响应 更具体地说,我们的平台提交请求并从服务获取响应,因此对于我来说,作为应用程序开发人员,我只需要编写soap请求并将它们作为字符串传递给平台。我还从平台上得到了字符串响应 我试过StringBuilder,但它看起来很原始。这必须是一个更好的方法 我是否可以将所有请求放在一个xml文档中,并以某种方式从中生成请求 或者更好,是否可以从wsdl文件生成请求 谢谢 Sara

我有一个wsdl文件和一个关于web服务提供商的每个请求和响应中所有元素的详细文档。我的工作是编写大约40个请求并解析相应的响应

更具体地说,我们的平台提交请求并从服务获取响应,因此对于我来说,作为应用程序开发人员,我只需要编写soap请求并将它们作为字符串传递给平台。我还从平台上得到了字符串响应

我试过StringBuilder,但它看起来很原始。这必须是一个更好的方法

我是否可以将所有请求放在一个xml文档中,并以某种方式从中生成请求

或者更好,是否可以从wsdl文件生成请求

谢谢


Sarah

看看wsdl2java实用程序(有几个版本,一个与Axis2打包,另一个来自IBM,等等)。这些可以从您的WSDL生成客户机存根,应该可以为您节省大量的工作

编辑:刚刚意识到这可能需要一些额外的工作,因为您说您的平台提交了请求。生成的代码应该尝试向服务提交字符串如果这是WSDL指定的,那么您可以修改代码以将字符串传递给您的平台吗


您可以为此使用SAAJ API

有关更多详细信息,请访问以下链接:


    • 最简单的方法是soap ws-library:


      我不确定StringBuilder看起来比StringHi Woot4Moo(顺便说一句好听的名字)更原始,我的意思是,当我构建请求时,我使用StringBuilder。例如,StringBuilder.append(“”)。有很多打字,所以我叫它primitiveHi Segfault,谢谢你的回复。我尝试了Axis的wsdl2java在另一个项目上测试Web服务。生成的存根非常混乱(抱歉,找不到更好的词),我必须将请求作为字符串传递给我们的平台,所以我认为存根不会有帮助吗?也许我用错了wsdl2java?请回复您的编辑。是的,这可能是一种方法。是的,默认情况下生成的代码将是一团乱——有一些选项可以让它更紧凑一些,但我不记得具体是什么(我认为这与数据绑定的选择有关)。老实说,我很难凭良心推荐Axis项目的任何东西,因为它们是一堆废话。您可能还想看看如何使用XFire生成存根(添加到原始帖子的链接)。
         SoapClient client = SoapClient.builder()
              .endpointUrl("http://rpc.middleearth.com")
              .build();
      
         client.post(envelope);