1

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

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

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

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

问候,

4

1 回答 1

0

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

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

您从传递给此方法SOAP的对象中获取消息:SOAPMessageContext

SOAPMessage soapMsg = context.getMessage();

从您的消息中,您可以得到SOAP Body, SOAP Envelope, SOAP Header. 通过这样做,您可以添加任意数量的元素。但不要忘记您手动添加的每个元素都必须与您XSDWSDL文件匹配。

要将此处理程序声明到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端点的更多信息,您可以在此处找到。您还可以在此处找到有关处理程序的信息。

希望这有助于开始。

于 2012-09-03T21:52:42.823 回答