如何在现有的Web项目中集成Web服务?

时间:2011-07-05 15:09:47

标签: java web-services spring-mvc

我是Web服务的新手,我想在现有的Web项目中集成Web服务,但我很困惑如何去做。任何人都可以告诉我该怎么做吗?

对于我正在使用的项目:

  • Spring Framework
  • 休眠
  • 基于Pojo(不使用ant builder,hibernate.cfg.xml)
  • 的Eclipse

假设我有包含getTenderTitleForSecurityDeposit()函数的SecurityDepositServiceImpl类,那我该怎么做web服务呢?

1 个答案:

答案 0 :(得分:4)

实现Web服务的一种快速方法如下:

  • 请确保您的网络应用可以使用以下广告卡: JAXWS-rt.jar中; JAXB - impl.jar文件; streambuffer.jar; policy.jar; JAXWS-api.jar文件; STAX-ex.jar; gmbal-API-only.jar;管理-api.jar文件

  • 在WEB-INF文件夹中创建“sun-jaxws.xml”文件并填写以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime">
  <endpoint 
      implementation="com.foo.ws.MyWebServiceClass"

      name="MyServices" 
      url-pattern="/ws/theUrlILikeTheMost"
      />
</endpoints>
  • 在您的web.xml中添加以下代码段:
    <listener>
      <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>WebServices</servlet-name>
        <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>WebServices</servlet-name>
        <url-pattern>/ws/*</url-pattern>
    </servlet-mapping>
  • 创建您的类com.foo.ws.MyWebServiceClass并注释您要提供的内容:
@WebService(serviceName="MyServices")
public class MyWebServiceClass extends SpringBeanAutowiringSupport {
    @WebMethod
    public List<String> myMethodExposed(String username) {
      List<String> toret = new ArrayList<String>();
      toret.add("Hello world");
      toret.add("Life id beautiful");
      return toret;
    }
}

et voila:您的网络服务准备就绪。