首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手动创建SOAP消息?

手动创建SOAP消息?
EN

Stack Overflow用户
提问于 2012-09-03 23:08:04
回答 1查看 1.2K关注 0票数 1

我的目标是建立一个通用的web服务。在这个上下文中,“通用”的意思是,人们应该能够在输入上运行任意序列的工具(比方说一个文件)。这些工具是安装在服务器上的编译程序。

我的想法是在一个中心WSDL文件中指定每个工具。此WSDL文件将被解析,并且对于包含在WSDL文件中的每个工具,都会创建一个单独的Service Class,它通过apache commons exec执行相应的工具。

那么,是否可以手动创建一个SOAP Message,其中指定了想要在输入上执行的工具序列?然后,应解析此SOAP Message,并启动相应的Service Classes

我不得不说,我对Web Service编程完全陌生,非常感谢您的任何建议。以上只是一个想法,我愿意听取任何更好的建议。)

大家好,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-04 05:52:43

您可以通过实现SOAPHandler<SOAPMessageContext>接口来手动(以编程方式)创建、修改SOAP消息。然后你需要重写这个方法:

代码语言:javascript
复制
public boolean handleMessage(SOAPMessageContext context) {
   //do anything you like with a message    
}

您将从传递到此方法的SOAPMessageContext对象获得SOAP消息:

代码语言:javascript
复制
SOAPMessage soapMsg = context.getMessage();

从你的消息中,你可以得到SOAP BodySOAP EnvelopeSOAP Header。通过执行此操作,您可以添加任意数量的元素。但不要忘记,手动添加的每个元素都必须与WSDL文件的XSD匹配。

要将此处理程序声明到JAX-WS上下文中,您可以Spring配置,如下所示:

代码语言:javascript
复制
  <jaxws:endpoint id="HandlerExample"
                  implementor="your.service.ImplemetationClass"
                  address="http://localhost:8080/Example/services/Example">
    <jaxws:handlers>
       <bean class="your.Handler" />
    </jaxws:handlers>
  </jaws:endpoint>

有关如何配置JAX-WS端点的更多信息,可以在here中找到。此外,您还可以在here中找到有关处理程序的信息。

希望这对一个开始有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12250351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档