2012-03-10 48 views
0

我有一個使用spring,cxf和jax ws實現的web服務。我的服務公開了10個操作,一些操作返回了200個以上的字段。現在我想用駱駝代理我的web服務。意味着我希望爲不同的客戶提供不同的WSDL,只需要操作和必填字段。我們的客戶之一想要執行10次操作的特定操作,只有200個字段的某些字段從該Web服務的操作中暴露出來。我怎樣才能通過駱駝來實現這一目標?如何使用駱駝代理Web服務?

回答

1
+0

謝謝你的迴應。我嘗試了由apache駱駝提供的駱駝代理示例,並且能夠運行它。我將駱駝安裝爲駱駝上下文定義的包。但是當我嘗試使用過程並嘗試從交換對象獲取響應時,我不成功。在Camel上下文中,我將cxf:endpoint定義爲在相同的上下文文件中創建,並定義爲「to」以預先存在的服務。在「到」之後,我還有另一個「to」,它指的是正在實現Process接口的進程bean。我無法獲得響應,當我嘗試調試並查看交換對象時,看不到任何響應。 – Mr9 2012-03-12 04:37:44

1

取決於你如何部署你的駱駝情況下,有可能是利弊與CXF。

如果您將駱駝綁定到啓用了Spring的Web應用程序中,那麼您可能還想查看Camel中的Spring-WS。它比CXF重量輕一點,但有點有限。它可以,但套件您的需求。 http://camel.apache.org/spring-web-services.html

Spring-WS並不真正綁定到特定的WSDL,而是特定的操作。 像這樣:

從( 「彈簧-WS:rootqname:{http://example.com/}的getFoo endpointMapping =#endpointMapping」).bean(prepareProxy) 。爲(「彈簧-WS:HTTP ://foo.com/bar「).bean(prepareAnswer);

取決於您需要的答案轉換的複雜程度,您可以使用Java或XSLT或其他一些選擇的腳本語言來完成。這是一個品味問題。

+0

感謝您的回覆。我嘗試了由apache駱駝提供的駱駝代理示例,並且能夠運行它。我將駱駝安裝爲駱駝上下文定義的捆綁包。但是當我嘗試使用過程並嘗試從交換對象獲取響應時,我不成功。 – Mr9 2012-03-12 04:30:26