1,jar包导入,从官网下载zip文件后里面会有很多jar包,哪些必须哪些不是必须,我能力有限,从其他人那参考了导入的一下jar包。

2、配置相关文件

web.xml中配置servlet

<servlet>
        <servlet-name>CXFService</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>CXFService</servlet-name>
        <url-pattern>/zxg/*</url-pattern>  //此处用于访问时的路径比如    项目名称/zxg ,自己随意改
    </servlet-mapping>

3、配置到spring中

我的是apllication-context.xml中

<jaxws:endpoint id="userService"        接口名称
            implementor="com.webservice.spring.UserWSImpl"   接口的实现类
            address="/webservice">                                                 系统自动给zxg后面追加的地址,自己随意改
       </jaxws:endpoint>

4、服务端其实就是将一个方法进行了发布,说直白就是一个特殊的方法,就是写一个接口,再写一个接口实现类,在实现类中做一些业务处理,再返回相应处理结果,把代码贴一下,三个类

@WebService
public interface UserWS {
    public User1 getUserById(long id);
}

@WebService
public class UserWSImpl implements UserWS{

@Override
    public User1 getUserById(long id) {
        User1 user = new User1();
        user.setAge(18);
        user.setName("张三");
        user.setId(1);
        return user;
    }

}

@SuppressWarnings("serial")  
public class User1 implements Serializable {

private int id;  
    private String name;  
    private int age;  
    private String description;  
      
    public User1() {  
        super();  
    }

public int getId() {
        return id;
    }

public void setId(int id) {
        this.id = id;
    }

public String getName() {
        return name;
    }

public void setName(String name) {
        this.name = name;
    }

public int getAge() {
        return age;
    }

public void setAge(int age) {
        this.age = age;
    }

public String getDescription() {  
        return description;  
    }

public void setDescription(String description) {  
        this.description = description;  
    }  
      
      
}

5、启动项目访问wsdl看是否成功localhost:8080/myFirstBlood/zxg/webservice?wsdl

6、成功后,将cxf配置到系统变量中,通过dos命令生成客户端代码,这个网上教程比较多,而且没有啥大难度,不写了

7、客户端做好后,一般调用时会报错说类名重复一类的,需要做的就是将每一个get*这样的类中的方法中@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "getUserById1", propOrder = {
    "arg0"
})中name的名称改一下,比如这个加了一个1.接口中方法越多自动生成的get方法也多,需要每一个都改。这样总体就没啥错误了。

8、客户端test

public class Test {
    public static void main(String[] args) {
        UserWSImplService ui = new UserWSImplService();
        UserWS uws = ui.getUserWSImplPort();
        User1 user = uws.getUserById(1);
        System.out.println(user.getName());
    }
}

最新文章

  1. Linux----LVM扩容磁盘空间
  2. Matlab画图,坐标轴范围设置和间隔设置
  3. shell 时间统计脚本
  4. android service总结
  5. 用WebBrowser实现HTML界面的应用和交互 good
  6. 【CSS】伪类和伪元素选择器
  7. PHP 中move_uploaded_file 上传中文文件名失败
  8. css3基本属性
  9. FPGA-VHDL课堂学习笔记*01
  10. delphi如何在form显示出来后处理指定的事件(例如自动登录)
  11. day9-13 linux基础
  12. sparse.coo_matrix()
  13. [Golang] 第三方包应该如何安装--在线和离线
  14. effective c++ 笔记 (41-44)
  15. C++11 正则表达式——实例系统(转载)
  16. [leetcode]257. Binary Tree Paths二叉树路径
  17. Windows远程连接局域网内或同一个网段或同一个路由器的某台机器
  18. Elasticsearch入门CRUD(新增、查询、修改、删除)
  19. binlog2sql 用法
  20. Java接口与继承作业

热门文章

  1. java中常用的转义字符
  2. APUE学习笔记5——信号、信号集和进程信号屏蔽字
  3. Lambda 表达式-即匿名函数
  4. 路飞学城Python-Day22
  5. BZOJ 4372/3370 烁烁的游戏/震波 (动态点分治+线段树)
  6. 【技术翻译】SIFT算子原理及其实现 (一)介绍
  7. 【Latex常见问题总结】
  8. 倍增算法总结 ( 含RMQ模板)
  9. JavaString库
  10. 数据库-mongodb-Gridfs