前些天开发完服务端,现在又要开发客户端,还是需要身份验证的,因为以前也没做过,遇到很多麻烦,现在开发完成还是记录一下。
第一种方法
1.首先根据wsdl文件生成java客户端代码(1.txt还是一中的):
wsdl2java -b "1.txt" -p com.sgcc.manager.iorguser.client -d src -frontend jaxws21 -client SI_0319_SZDA2MDM_ORG_Return_D.wsdl
放置好wsdl文件,生成的java代码基本上就可以直接调用webservice接口了,因为这辞需要身份验证,所以需要添加用户名密码:
public static void main(String args[]) throws java.lang.Exception {
SI0319SZDA2MDMORGReturnService ss = new SI0319SZDA2MDMORGReturnService();
//获取webservice接口
SI0319SZDA2MDMORGReturn port = ss.getSI0319SZDA2MDMORGReturnPort();
BindingProvider bp = (BindingProvider) port;
Map<String, Object> context = bp.getRequestContext();
context.put(BindingProvider.USERNAME_PROPERTY, "ceshi");//用户名
context.put(BindingProvider.PASSWORD_PROPERTY, "ceshi");//密码
System.out.println("Invoking si0319SZDA2MDMORGReturn...");
com.sgcc.manager.iorguser.client.MDMLOGSTAUS _si0319SZDA2MDMORGReturn_root = null;
port.si0319SZDA2MDMORGReturn(_si0319SZDA2MDMORGReturn_root);
System.out.println("测试成功");
System.exit(0);
}
第二种方法
public static void main(String args[]) throws java.lang.Exception {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
//定义服务接口类型
factory.setServiceClass(SI0319SZDA2MDMORGReturn.class);
//设置服务地址
factory.setAddress
("http://127.0.0.1:7001/cxf/service/cxfService?wsdl");
com.sgcc.manager.iorguser.client.MDMLOGSTAUS _si0319SZDA2MDMORGReturn_root = null;
SI0319SZDA2MDMORGReturn client = (SI0319SZDA2MDMORGReturn) factory.create();
BindingProvider bp = (BindingProvider) client;
Map<String, Object> context = bp.getRequestContext();
context.put(BindingProvider.USERNAME_PROPERTY, "ceshi");
context.put(BindingProvider.PASSWORD_PROPERTY, "ceshi");
client.si0319SZDA2MDMORGReturn(_si0319SZDA2MDMORGReturn_root);
System.out.println("测试成功");
System.exit(0);
}
第三种方法
1.配置客户端配置文件
<jaxws:client
id="SI0319SZDA2MDMORGReturn_SI0319SZDA2MDMORGReturnPort_Client"
serviceClass="com.sgcc.manager.iorguser.client.SI0319SZDA2MDMORGReturn"
address="http://127.0.0.1:7001/cxf/service/cxfService?wsdl" />
2.java代码
// 加载客户端的配置定义
ApplicationContext context =
new FileSystemXmlApplicationContext("classpath:config/spring/applicationContext-webservice.xml");
// 获取定义的 Web Service Bean
SI0319SZDA2MDMORGReturn service = (SI0319SZDA2MDMORGReturn)context.getBean("SI0319SZDA2MDMORGReturn_SI0319SZDA2MDMORGReturnPort_Client");
BindingProvider bp = (BindingProvider) service;
Map<String, Object> map = bp.getRequestContext();
map.put(BindingProvider.USERNAME_PROPERTY, "ceshi");
map.put(BindingProvider.PASSWORD_PROPERTY, "ceshi");
service.si0319SZDA2MDMORGReturn(_si0319SZDA2MDMORGReturn_root);
System.out.println("测试成功");
System.exit(0);