使用相同的网址发布不同的服务并单独管理

时间:2016-06-26 11:53:26

标签: web-services cxf jax-ws

我们有超过2000种业务方法,我们希望将其作为soap Web服务公开。为此我们决定使用apache camel的cxf。我们希望从相同的URL发布所有这些服务,因为我们认为它们的管理会更容易(特别是对于调用许多Web服务的客户)。但是我们也有一些要求:

  • 基于方法的日志启用
  • 基于方法的设置超时
  • 基于方法的mtom / base64设置等

我的问题是,如果可以从同一个网址(相同的SEI)发布所有服务,并且能够提供所有这些要求。而且,如果我们设法做到这一点,它会是一个好的,可扩展的解决方案吗?

1 个答案:

答案 0 :(得分:1)

  

基于方法的日志启用

如果你的业务逻辑中有2000个方法,我想你也有记录。您可以为Web服务定义多个记录器,并在方便时使用每种方法

  

基于方法的设置超时

CXF允许在server endpoint configuration配置ReceiveTimeout,因此如果您使用一个端点,那么所有方法的超时时间都相同

  

基于方法的mtom / base64设置等

MTOM由JAX-WS服务器配置,启用或禁用它。此外,这些方法还有一个特定的DataHandler来支持它。一个端点意味着一个MTOM配置

在此链接中,您可以看到服务器设置的http-transport变量。其他实用程序(如拦截器,总线或故障处理程序)也由JAX-WS服务器配置。检查here是否有兴趣

  

它是一个优秀且可扩展的解决方案吗?

正如@kolossus所述,2k方法是一种奇怪的解决方案。我不认为你有性能问题,但很难开发和维护。认为您还可以提供一个构建的客户端,而不仅仅是WSDL,它封装了几个端点