【问题标题】:How to integrate Web-service in existing Web project?如何在现有的 Web 项目中集成 Web 服务?
【发布时间】:2011-09-28 23:32:23
【问题描述】:

我是 Web 服务的新手,我想将 Web 服务集成到我现有的 Web 项目中,但我很困惑如何去做。谁能告诉我怎么做?

对于我正在使用的项目:

  • Spring 框架
  • 休眠
  • 基于 Pojo(不使用 ant builder,hibernate.cfg.xml)
  • 日食

假设我有包含 getTenderTitleForSecurityDeposit() 函数的 SecurityDepositServiceImpl 类,那么我如何为此做网络服务?

【问题讨论】:

  • 您想调用另一个网络服务,还是提供一个网络服务?
  • 你还没有说你想使用什么网络服务框架 Java网络服务框架允许将网络服务端点部署为servlet

标签: java web-services spring-mvc


【解决方案1】:

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

  • 确保以下 jar 可用于您的 Web 应用: jaxws-rt.jar; jaxb-impl.jar;流缓冲.jar;政策.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 中添加以下 sn-p:
    <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;
    }
}

瞧:您的网络服务已准备就绪。

【讨论】:

  • 嗨 Sampisa,感谢重播您的建议对我来说非常有用。但是现在我遇到了麻烦,我正在使用调用 DAO 的服务;当我测试此 Web 服务时,它运行良好,但在我调用 DAO 的线路上,它无法识别 DAO。有没有额外的配置可以通过Service类定位DAO?
  • 您好,“它无法识别 DAO”是什么意思?你是怎么定义的?
  • 我实际上考虑过创建第二个 StackOverflow 帐户,这样我就可以为您的答案投票两次。
  • 我只是按照您的指示,他们完美地工作,只有一个小例外。在所需的 jar 列表中,应该添加 ha-api.jar。另外,我应该说所有的 jar 都可以在我在这里获得的 JAX-WS 2.2.5 中找到:jax-ws.java.net/2.2.5 下载文件 JAXWS2.2.5-20110729.zip,它们都在 lib 文件夹中。
  • 当我尝试加载 wsdl java.io.IOException 时出现此错误:当文档没有根时尝试写入 END_DOCUMENT(即尝试输出空文档
猜你喜欢
  • 2015-07-30
  • 1970-01-01
  • 1970-01-01
  • 2014-09-15
  • 2014-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多