手动创建SOAP消息?

时间:2012-09-03 15:08:04

标签: java-ee soap wsdl apache-commons-exec

我的目标是建立一个通用的Web服务。在这种情况下,“泛型”我的意思是,一个人应该能够在输入上运行任意一系列工具(假设一个文件)。 这些工具是安装在服务器上的编译程序。

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

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

我不得不说我对Web Service编程完全不熟悉,我很感激任何建议。以上只是一个想法,我愿意接受任何更好的建议;)

问候,

1 个答案:

答案 0 :(得分:0)

您可以通过实现SOAP界面手动(以编程方式)创建,修改SOAPHandler<SOAPMessageContext>消息。然后你需要覆盖这个方法:

public boolean handleMessage(SOAPMessageContext context) {
   //do anything you like with a message    
}

您从SOAP对象传入此SOAPMessageContext消息:

SOAPMessage soapMsg = context.getMessage();

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

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

  <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

希望这有助于一个开始。