2012-07-06 231 views
1

我需要創建soap web服務。我已經有wsdl和接口和實現(作爲pojo)。Spring-ws VS Apache cxf VS Apache Axis2 VS Metro

我現在正在選擇主題。 我需要框架的工作,將:

  • 作爲工作的servlet在servlet容器
  • 在我的web.xml只需要一個servlet映射
  • 具有良好的Spring集成(因爲我的服務實現的Spring bean)
  • 不需要我添加註釋。我的界面或實現中沒有註釋。

  • Spring-ws:看起來很酷,但據我瞭解,它迫使我直接處理XML,這是我不想做的。我想要框架來反序列化消息並將它作爲參數傳遞給我的POJO。

  • Apache cxf功能強大,並具有彈簧集成,但如果我使用Jax-WS前端,我將不得不使用註釋,而且我不想觸摸我的POJO。簡單的前端怎麼樣?

  • Metro是Jax-WS RI,所以它很大程度上取決於註釋。

Axis2似乎是我的選擇。你會選擇什麼?


只想告訴我想做的事: 我們的應用程序使用SOAP連接到遠程服務。他們給了我們WSDL,我們已經生成了代理類和DTO,並且所有這些東西都打包成jar並存儲在VCS中。現在我需要爲這個Web服務編寫仿真。我不想生成新的DTO。

回答

1

我認爲Spring WS將會滿足您的需求。您不需要直接處理XML。 Spring將序列化/反序列化許多類型的對象,包括所有的數據傳輸對象。他們應該只是註釋JAXB實體。看看這個信息:http://static.springsource.org/spring-ws/sites/2.0/reference/html/server.html#d5e1063

如果你已經有了一個WSDL,你可以從那個WSDL生成你的DTO對象。有幾種工具可以做到這一點,包括大多數IDE。

+0

謝謝,但我已經有DTO,他們不是jaxb註釋:)我可以讓Spring-WS使用它們,還是應該生成新的? – user996142 2012-07-06 23:11:41

+0

你沒有權限訪問源代碼,所以你現在可以註釋它們嗎?它們是否與你的WSDL相匹配?另一種方法是從WSDL生成DTO對象,然後將這些對象映射到已經存在的類,儘管如果不需要它們的話會有很多額外的代碼。 – jjathman 2012-07-06 23:12:58

+0

是的,它們匹配。我無法訪問源代碼。看起來我需要解釋我的情況,我會編輯我原來的帖子,好嗎? – user996142 2012-07-06 23:15:18