2015-12-21 41 views
2

我最初公开了一个jax-ws web服务,带有两个参数(比如FirstName,LastName)。有时候我们需要用3个参数(Say FirstName,LastName,FatherName)来更改web服务,怎么做我们添加新参数而不停止服务(或运行Web服务器的服务器)。是否可以在jax-ws web服务中动态添加参数?

我想在属性文件(或数据库)中有参数。如果我在该属性文件中添加新参数,那么Web服务需要更新。

是否可以在jax-ws web服务中动态添加参数?请帮忙。在此先感谢

回答

2

不能动态地添加字段,但你可以使用一些方法来达到相同的结果。

  • 使用类似接口参数的KeyValue对象列表,这样客户端将调用ws添加所需的键/值。

  • 提供一个ws,其中输入是一个独立的xml,因此您将能够解组并且执行您所需的操作。

优点: 你有没有改变你的接口,如果添加了一个新字段,但只有后端。

缺点: 您必须检查关键语法以确保输入的可靠性。

+1

一点点黑客,但我喜欢第一个建议。地图会更适合吗? –

+0

是的,现在我们接收的值为JSON字符串,Map也更加可用 –

+1

@LiamDempsey Webservice应该可以互操作,HashMap不是。您可以使用一个适配器告诉JAXB运行时如何将映射转换为xml结构,我认为这将与第一种方法相同。 –

0

我真的想说“你不能”......我想不出任何东西允许这(其他人可能)。

我会说的是“你不应该”。在突然更改Web服务的接口时,考虑客户端代码,WSDL更改和客户端代码将需要重新生成。

(只是为了澄清,加入在WS的新方法就可以了,改变一个麻烦得多存在的。)

相关问题