在Tomcat下运行的现有Web App中将Java类公开为Web服务

时间:2010-11-10 13:11:18

标签: java web-services tomcat axis2

我使用Axis2来创建Web服务。编写,测试和运行它非常容易。

但是现在我已经在Tomcat下运行了现有的Java Web App,我想向它添加Web服务。例如。而是处理POST和GET参数并生成HTML我希望接收SOAP消息,处理它并再次作为SOAP消息返回响应。

哪个技术/框架/库/等。应该用?

最好像为Axis2编写Web服务一样容易。

3 个答案:

答案 0 :(得分:0)

一个可能的工作流程是:

  1. 重构您的网络应用,以便使用不同的方法实施业务逻辑,doPost()doGet()仅调用这些方法。
  2. 从网络应用类中提取商业方法的界面。
  3. 运行java2wsdl将上述接口及其相关类型转换为WSDL规范。
  4. 使用服务器端绑定运行wsdl2java以生成骨架类和其他辅助设备。
  5. 将骨架类替换为原始Web应用程序类(或将相关方法从Web应用程序复制到骨架类)。
  6. 删除多余的doPost()doGet()方法,删除旧的网络应用。
  7. 瞧瞧!您有Axis2 / Tomcat Web服务。它需要一些重构,但核心逻辑没有变化。

答案 1 :(得分:0)

  1. @WebService注释添加到java类中。
  2. @WebMethod添加到要作为Web服务操作公开的方法。
  3. 在web.xml文件中添加特定于框架的servlet和过滤器映射。例如,对于Sun RI f / w,它是WSServlet。 Axis也必须有类似的东西。
  4. 编写WSDL文件,或从您拥有的Java类生成它。您可以使用 wsgen 等工具[适用于Sun RI]。对于Axis来说,它是 java2wsdl
  5. 添加所需的Web描述符文件。对于Axis而言,它通常是wsdd文件,对于Sun RI,它通常是sun-jaxws.xml文件。

答案 2 :(得分:0)

  • 如果要添加新的Web服务,可以使用Axis 2将其添加到现有的Web应用程序

  • 如果要使用现有功能(功能),首先需要重构Web应用程序并将业务逻辑提取到新方法中。然后使用@WebService注释类和接口。如果要隐藏在Web服务中公开的某些方法,请使用@WebMethod(exclude=true)

  • 注释这些方法