Apache CXF Web服务作为Tapestry5模块,用于与.Net客户端集成

时间:2013-03-15 02:54:53

标签: jax-ws cxf tapestry

环境:

  • Servlet容器: Apache Tomcat 7
  • Java web \ IoC框架: Apache Tapestry 5.3.6
  • Web服务框架: Apache CXF 2.7.3

要求

我需要为.Net客户端(即C#)提供网络服务。此Web服务应该能够利用Tapestry的IoC框架,以便能够使用它的Registry自动初始化Tapestry已配置的服务(即公用服务)

当前进度

我对jax-ws很新,但在阅读了Apache CXF文档之后,我试图模仿以下sample。 所以我开发了一个没有接口的简单服务,成功执行了以下命令:

java2ws -wsdl -server -verbose -o IpkWS.wsdl -databinding aegis -portname IxAccess -address http://localhost:8080/ipk-ws -servicename IpkWS -frontend jaxws -soap12 -s ws_build -d ws_resources com.sc.ipk.ws.services.Calculator

创建了wsdl文件和Endpoint类。根据上面链接的示例,我仍然需要在CXFServlet文件中定义web.xml。并且仍然需要创建cxf-servlet.xml文件。

问题

  1. 我知道如何编写Tapestry模块,但我应该如何使用网络服务呢?
    • 是否可以在我的网络应用的CXFServlet文件中永久使用web.xml进行配置?我可以自由地不在我的CXFServlet文件中包含web.xml,因为我很可能不会将此模块部署到其他客户端。
    • 我的网络服务在Apache CXF上运行所需的最少JAX-WS / Apache Tomcat 7个库是什么?
  2. 需要 cxf-servlet.xml文件吗?它的用途是什么?
  3. 是否有任何必要的配置可以让.Net客户端使用我的服务?如果是,是否会影响\阻止其他客户端平台正常使用我的Web服务?
  4. Endpoint创建的java2ws课程的目的是什么?它是main执行的CXFServlet方法吗?
  5. 如果Java客户端没问题,我将需要返回.Net个对象的复杂集合?

1 个答案:

答案 0 :(得分:1)

可能有点偏离主题,但Tynamo的团队在Tapetry中使用Jax-RS集成工作得很好:http://docs.codehaus.org/display/TYNAMO/tapestry-resteasy+guide 如果你真的没有WSDL,它可以帮助你。

如果你肯定想要使用Jax-WS,这里有一些“想法”:http://tapestry.1045711.n5.nabble.com/Web-services-using-Tapestry-td4974432.html