0

环境:

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

要求

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

目前的进展

我很陌生,jax-ws但是在阅读了一些Apache CXF文档之后,我试图模仿以下示例。于是我开发了一个没有界面的简单服务,成功执行了如下命令:

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模块,但我应该如何使用 web-services 呢?
    • 是否可以在CXFServlet不将其永久保存在我的网络应用程序web.xml文件中的情况下进行配置?我应该可以不包含CXFServlet在我的web.xml文件中,因为我很可能不会为其他客户端部署此模块。
    • 我的网络服务运行所需的最低限度Apache CXF/库是什么?JAX-WSApache Tomcat 7
  2. 需要文件cxf-servlet.xml吗?它有什么用?
  3. 是否有任何必要的配置使.Net客户端能够使用我的服务?如果是,这会影响\阻止其他客户端平台正确使用我的网络服务吗?
  4. Endpoint服务创建的类有什么目的java2ws?它是main由执行的方法CXFServlet吗?
  5. 我必须返回一个复杂的对象集合是什么,对客户Java来说应该可以吗?.Net
4

1 回答 1

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

于 2013-03-16T11:00:33.290 回答