zoukankan      html  css  js  c++  java
  • Spring的WebService开发

    由于项目使用Spring开发,所以笔者选择了Apache CXF进行WebService开发,原因是Apache CXF 提供方便的Spring整合方法,可以通过注解、Spring标签式配置来暴露Web Services和消费Web Services。
    1.     首先去http://cxf.apache.org/download.html 下载最新的版本(目前是2.4.1)
    2.     导入相应的包到项目中,大概包如下:
                  commons-logging-1.1.1.jar
    geronimo-activation_1.1_spec-1.0-M1.jar (or Sun's Activation jar)
    geronimo-annotation_1.0_spec-1.1.jar (JSR 250)
    geronimo-javamail_1.4_spec-1.7.1.jar (or Sun's JavaMail jar)
    geronimo-servlet_3.0_spec-1.0.jar (or Sun's Servlet jar)
    geronimo-ws-metadata_2.0_spec-1.1.1.jar (JSR 181)
    jaxb-api-2.1.jar
    jaxb-impl-2.1.13.jar
    jaxws-api-2.1.jar
    neethi-3.0.0.jar
    saaj-api-1.3.jar
    saaj-impl-1.3.jar
    stax-api-1.0.1.jar
    stax2-api-3.1.1.jar
    wsdl4j-1.6.2.jar
    woodstox-core-asl-4.0.8.jar
    xmlschema-core-2.0.jar
    xml-resolver-1.2.jar
    cxf-2.4.0.jar
                   Spring的包就不说了。
    3.     新建一个接口

           @WebService

    public interface HelloWorldService {

                  public String getNewName(String userName);

    }
    使用@WebService标识让CXF知道使用该接口来创建WSDL
    4.     新建一个实现类

           @WebService(endpointInterface="org.app.demo.spring.service.HelloWorldService")

    public class HelloWorldServiceImpl implements HelloWorldService {

                  public String getNewName(String userName) {

                         return "Hello Spring!" + userName;

                  }

    }
    5.     修改相应的配置文件
    ApplicationContext.xml中加入如下代码

    <jaxws:endpoint

             id="helloWorld"

             implementor="org.app.demo.spring.service.impl.HelloWorldServiceImpl"

               address="/HelloWorld" />
    或者
    <bean id=" helloWorldService" class=" org.app.demo.spring.service.impl.HelloWorldServiceImpl" />

    <jaxws:endpoint

             id="helloWorld"

             implementor="#helloWorldService"

               address="/HelloWorld" />
     
    注意:XML头文件需相应添加
    xmlns:jaxws="http://cxf.apache.org/jaxws
    http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
     
    web.xml中加入如下代码

    <servlet>

                  <servlet-name>CXFServlet</servlet-name>

                  <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

                  <load-on-startup>2</load-on-startup>

           </servlet>

     

           <servlet-mapping>

                  <servlet-name>CXFServlet</servlet-name>

                  <url-pattern>/*</url-pattern>

    </servlet-mapping>
    6.     启动Tomcat,打开http://localhost:8080/myapp/HelloWorld?wsdl就可以看到了
    7.     客户端调用也很方便,如下代码:

           URL wsdlUrl = new URL("http://192.168.0.114:8080/myapp/HelloWorld?wsdl");

           QName SERVICE_NAME = new QName("http://impl.service.spring.demo.app.org/","HelloWorldServiceImplService");

           Service service = Service.create(wsdlUrl, SERVICE_NAME);

           HelloWorldService hello = service.getPort(HelloWorldService.class);

    System.out.println(hello.getNewName("WebService调用"));
    然后执行代码后,会打印出 Hello Spring!WebService调用
    注意   1. IP地址为Webservice的服务器的地址。
             2. 必须把相应的接口复制到客户端项目中。
  • 相关阅读:
    php utf-8
    thinkPHP--关于域名指向的问题
    PHP命名空间(Namespace)的使用详解
    thinkphp 动态配置
    枚举之称硬币
    5.7
    5.6
    5.5(OI一本通开始)
    5.4
    5.3
  • 原文地址:https://www.cnblogs.com/waiwai1015/p/4651029.html
Copyright © 2011-2022 走看看