2010-11-10 57 views
0

我使用Axis2创建Web服务。编写,测试和运行它非常容易。在Tomcat下运行的现有Web App中将Java类公开为Web服务

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

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

最好应该很容易为Axis2编写Web服务。

回答

0

一个可能的工作流程是:

  1. 重构您的Web应用程序,使业务逻辑在不同的方法来实现,并doPost()doGet()只调用这些方法。
  2. 从Web应用程序类中提取业务方法的接口。
  3. 运行java2wsdl将上述接口及其相关类型转换为WSDL规范。使用服务器端绑定运行wsdl2java以生成框架类和其他辅助程序。
  4. 将骨架类替换为原始的Web应用程序类(或将相关方法从Web应用程序复制到骨架类)。
  5. 删除冗余doPost()doGet()方法,删除旧的Web应用程序。

等瞧!您有一个Axis2/Tomcat Web服务。它需要一些重构,但不改变核心逻辑。

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描述符文件。对于Sun RI,通常是Axis的wsdd文件和sun-jaxws.xml文件。
0
  • 如果你想添加一个新的Web服务,您可以添加到使用Axis 2

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