我的目标是建立一个通用的web服务。在这个上下文中,“通用”的意思是,人们应该能够在输入上运行任意序列的工具(比方说一个文件)。这些工具是安装在服务器上的编译程序。
我的想法是在一个中心WSDL文件中指定每个工具。此WSDL文件将被解析,并且对于包含在WSDL文件中的每个工具,都会创建一个单独的Service Class,它通过apache commons exec执行相应的工具。
那么,是否可以手动创建一个SOAP Message,其中指定了想要在输入上执行的工具序列?然后,应解析此SOAP Message,并启动相应的Service Classes。
我不得不说,我对Web Service编程完全陌生,非常感谢您的任何建议。以上只是一个想法,我愿意听取任何更好的建议。)
大家好,
发布于 2012-09-04 05:52:43
您可以通过实现SOAPHandler<SOAPMessageContext>接口来手动(以编程方式)创建、修改SOAP消息。然后你需要重写这个方法:
public boolean handleMessage(SOAPMessageContext context) {
//do anything you like with a message
}您将从传递到此方法的SOAPMessageContext对象获得SOAP消息:
SOAPMessage soapMsg = context.getMessage();从你的消息中,你可以得到SOAP Body,SOAP Envelope,SOAP Header。通过执行此操作,您可以添加任意数量的元素。但不要忘记,手动添加的每个元素都必须与WSDL文件的XSD匹配。
要将此处理程序声明到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中找到有关处理程序的信息。
希望这对一个开始有帮助。
https://stackoverflow.com/questions/12250351
复制相似问题