我的目标是建立一个通用的Web服务。在这种情况下,“泛型”我的意思是,一个人应该能够在输入上运行任意一系列工具(假设一个文件)。 这些工具是安装在服务器上的编译程序。
我的想法是在中央WSDL
文件中指定每个工具。解析此WSDL
文件,并为WSDL
文件中包含的每个工具创建一个单独的Service Class
,它通过apache commons exec执行相应的工具。
是否可以手动创建SOAP Message
,其中指定了一个想要在输入上执行的工具序列?然后应解析此SOAP Message
并启动相应的Service Classes
。
我不得不说我对Web Service
编程完全不熟悉,我很感激任何建议。以上只是一个想法,我愿意接受任何更好的建议;)
问候,
答案 0 :(得分: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
。您可以通过执行此操作添加任意数量的元素。但请不要忘记,您手动添加的每个元素都必须与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。
希望这有助于一个开始。