2012-01-16 18 views
0

提供相同的Web服務,我完全新的Web服務和所有我已經能夠做的是一個Hello World連接到不同的服務器使用WSDL

我的情況下面,我有一些服務器,這些服務器提供一個WSDL文件,所有的服務器提供相同的文件和方法,它們只有不同的IP /端口。另外每個服務器都包含自己的一組用戶。

我知道如何溝通一次處理一個WSDL的工作,但我需要兩兩件事:

  • 能夠動態添加Web服務(連接/斷開到其他服務器)
  • 如果能夠到正確的服務器作爲正確的用戶執行的方法(你不能提出一個要求,如果你的用戶沒有你問到服務器上存在)

我沒有從哪裏開始的想法,可有人點我在解決這兩個問題的方向?

回答

0

對於您使用的庫而言,您並不具體。

例如,如果您使用CXF(JAX-WS一般),你可以做到以下幾點:

// change endpoint URL 
((BindingProvider)service).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "new url"); 
// new username. password will be provided by WS callback 
((BindingProvider)service).getRequestContext().put(SecurityConstants.USERNAME, "username"); 

如果你使用Spring的基礎設施就可以自動裝配所有代理的一個聲明:

@Autowired 
private Map<String, ServiceInterface> interfaces; 

如果你想添加Web服務動態你必須在任何時候,以決定是否該動態意味着在應用程序啓動時 - 但這與Web服務無關 - 它是自動發現的一般編程模型(您可以使用數據庫,可用服務的單個遠程源等)