java⾃带wsimport命令⽣成webservice客户端代码及服务调⽤
wsimport是jdk⾃带的命令,可在jdk/bin⽬录下到,根据wsdl⽂档⽣成客户端中间代码,基于⽣成的代码编写客户端,可以省很多⿇烦。
wsimport命令⽤法
wsimport [options] WSDL_URI
⽐较常⽤的[options]有:
1. -d <directory>
在指定的⽬录⽣成class⽂件
2. -clientjar <jarfile>
在当前⽬录⽣成jar⽂件,结合-d <directory>可以在指定的⽬录⽣成jar⽂件
3. -s <directory>
在指定的⽬录⽣成java源⽂件
4. -p <pkg>
指定⽣成⽂件的包结构
5. -keep
在⽣成class⽂件,或者jar包时,同时保留java源⽂件
⽣成客户端代码后放⼊我们的项⽬中
然后就可以测试调⽤我们的接⼝了
这⾥我们写⼀个类Test.java进⾏测试,
(1)、动态⽣成客户端代码,不会过度依赖⽣成的客户端代码(⽤axis、CXF⼀类的webservice框架可以不⽤导⼊这么多客户端代码就能调⽤接⼝,框架类的后续再更,本篇就介绍jax-ws)
package com.nantian.ws.client;
import java.MalformedURLException;
import java.URL;
l.namespace.QName;
l.ws.Service;
import com.nantian.ws.Aservice;
public class Test {
public static void main(String[] args) {
try {
//创建访问wsdl服务地址的url
URL url = new URL("localhost:12345/aservice?wsdl");
//通过QName指明服务的和具体信息
QName sname= new QName("ws.nantian/","AserviceImplService");
//创建服务
Service service = ate(url,sname);
//实现接⼝
Aservice ms =Port(Aservice.class);
System.out.println(ms.add(12, 33));
System.out.MessageWithParam("11111"));
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
运⾏结果:
45
Your message is :11111
(2)、完全使⽤客户端代码调⽤接⼝
package com.nantian.ws.client;
import com.nantian.ws.Aservice;调用webservice服务
import com.nantian.ws.AserviceImplService;
public class Test {
public static void main(String[] args) {
AserviceImplService ais = new AserviceImplService();
Aservice aservice = AserviceImplPort();
int sum = aservice.add(1, 2);
String msg = Message();
System.out.println("sum is :"+sum);
System.out.println("msg :"+msg);
}
}
运⾏结果:
sum is:3
msg:hello
不同的⽅式,都能得到想要的结果。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论