• webservice和spring相结合(new)


    (一):首先先导入架包

    复制代码
        <!-- spring并入webservice接口所需要的jar -->
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-frontend-jaxws</artifactId>
                <version>${cxf.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-transports-http</artifactId>
                <version>${cxf.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-ws-security</artifactId>
                <version>${cxf.version}</version>
            </dependency>
    复制代码

    自己用的是<cxf.version>2.6.2</cxf.version>

    (二)修改web.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <!-- 集成webservice接口 -->
        <servlet>
            <display-name>CXFServlet</display-name>
               <servlet-name>CXFServlet</servlet-name>
               <servlet-class>
                      org.apache.cxf.transport.servlet.CXFServlet
               </servlet-class>
               <load-on-startup>1</load-on-startup>
         </servlet>
        <!-- 过滤掉所有已webservice开头的链接,并且是webservice的链接 -->
         <servlet-mapping>
                <servlet-name>CXFServlet</servlet-name>
                <url-pattern>/webservice/*</url-pattern>
         </servlet-mapping>

    (三)在spring配置文件中配置接口并且进行发布

    1
    2
    3
    <!-- 部署webservice接口 -->
        <bean id="webServiceImpl" class="com.kaishengit.business.webservice.WebServiceImpl" />
        <jaxws:endpoint id="webServiceImplEndpoint" implementor="#webServiceImpl" address="/test" />

    注意的是在配置头上

    <beans xmlns="
           xmlns:jaxws="http://cxf.apache.org/jaxws"
           xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

    (四)接下来是贴代码时刻了

    复制代码
     1 package com.kaishengit.business.webservice;
     2 
     3 import javax.jws.WebMethod;
     4 import javax.jws.WebService;
     5 
     6 //使用@WebService注解标注WebServiceI接口
     7 @WebService
     8 public interface WebServiceI {
     9 
    10     //使用@WebMethod注解标注WebServiceI接口中的方法
    11     @WebMethod
    12     String sayHello(String name);
    13     
    14     @WebMethod
    15     String save(String name,String pwd);
    16 }

    复制代码
    复制代码
    package com.kaishengit.business.webservice;
    
    import javax.jws.WebService;
    
    //使用@WebService注解标注WebServiceI接口的实现类WebServiceImpl
    @WebService
    public class WebServiceImpl implements WebServiceI {
    
        public String sayHello(String name) {
            System.out.println("WebService sayHello "+name);
            return "return:sayHello "+name;
        }
    
        public String save(String name, String pwd) {
            System.out.println("WebService save "+name+", "+pwd);
            return "save Success";
        }
    }
    复制代码

     当启动tomcat起来的时候我们输入:http://localhost:8080/myproject/webservice/test?wsdl   可以看到下图所示:

    说明已经发布成功了!

    (五)调用,还是使用自动生成代码;首先进入项目的文件;在cmd窗口中输入:执行命令:wsimport -keep url(url为wsdl文件的路径)生成客户端代码。

    例如:wsimport -keep http://localhost:8080/myproject/webservice/test?wsdl

    就可以自动生成代码了。

    调用代码:

    复制代码
     1 package com.kaishengit.business.webservice;
     2 
     3 public class Mytest {
     4 
     5     public static void main(String[] args) {
     6         WebServiceImplService w = new WebServiceImplService();
     7         WebServiceI web = w.getWebServiceImplPort();
     8         
     9         System.out.println(web.sayHello("你妹"));
    10         
    11     }
    12     
    13 }
    复制代码

    可以看到:

    到这边调用成功!

  • 相关阅读:
    python笔记之re模块学习
    python笔记之面向对象
    C# 静态类和非静态类(实例类)
    占位符的使用
    数据类型和数据类型转换
    win7 安装 memcached
    php 汉字转换成拼音
    apache window环境下本地配置虚拟主机
    在浏览器输入一个网址到得到页面的过程
    浅谈线程池ThreadPoolExecutor核心参数
  • 原文地址:https://www.cnblogs.com/fucktom/p/5335487.html
Copyright © 2020-2023  润新知