CXF wsdl2java生成代码调用

如果配置过环境直接窗口运行命令wsdl2java

参数说明:

  • -p 也就是package 对应java中的包
  • -d 输入目录,生成.java文件会在该目录,会自动添加-p参数配置的包路径
  • -client 生成客户端测试web service的代码.
  • -server 生成服务器启动web  service的代码.
  • -impl 生成web service的实现代码.
  • -ant  生成build.xml文件.
  • -all 生成上面-client -server -impl -ant 对应的所有文件.

我只生成了客户端的程序

wsdl2java -impl -p com -client http://xxxxx?wsdl

生成完的类里面有个Client结尾的类这就是测试用的吧,里面包含了所有的接口方法。

直接用生成的类调用也非常简单和平常的类一样接口实现类。

由于生成的文件太多了,我只需要里面的一个方法不想把所有的类都拷贝到项目里面所有我只找生成服务那个类把我需要的方法单独拷贝出来如下图

《CXF wsdl2java生成代码调用》

上面标记的1。2。3都是依赖的类也要拷贝出来,从新建个接口类把方法放进去

《CXF wsdl2java生成代码调用》

调用方法如下

package com;

import java.net.URL;
import java.util.List;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

public class Test {

	 public static void main(String[] args) throws Exception {
	        URL wsdlUrl = new URL("http://xxx:8180/services/xxService?wsdl");
	        Service s = Service.create(wsdlUrl, new QName("http://xx.com/","xxService"));
	        LdapControlService hs = s.getPort(new QName("http://xx.com/","xxServicePort"), xxService.class);
	        List<Teacher> ret = hs.queryTeachers("22", "22", "222");
	        System.out.println(ret);
	    }
	
}

 

点赞

发表评论