Java如何调用webservice
更新时间:2024-06-07 23:54:01 阅读量: 综合文库 文档下载
1 Java调用WebService可以直接使用Apache提供的axis.jar自己编写代码,或者利用Eclipse自动
生成WebService Client代码,利用其中的Proxy类进行调用。理论上是一样的,只不过用Eclipse自
动生成代码省事些。
1、编写代码方式:
package com.yudun.test;
import java.rmi.RemoteException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.PrefixedQName;
import org.apache.axis.message.SOAPHeaderElement;
import com.cezanne.golden.user.Exception;
import com.cezanne.golden.user.UserManagerServiceProxy;
import javax.xml.namespace.QName;
import java.net.MalformedURLException;
import javax.xml.rpc.ServiceException;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPException;
public class testWebService {
public static String getResult() throws ServiceException, MalformedURLException,
RemoteException, SOAPException
{
//标识Web Service的具体路径
String endpoint = \服务地址\
// 创建 Service实例
Service service = new Service();
// 通过Service实例创建Call的实例
Call call = (Call) service.createCall();
//将Web Service的服务路径加入到call实例之中.
call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置
// 由于需要认证,故需要设置调用的SOAP头信息。
Name headerName = new PrefixedQName( new QName(\发布的wsdl里的
targetNamespace里的url\
org.apache.axis.message.SOAPHeaderElement header = new
SOAPHeaderElement(headerName);
header.addTextNode( \
call.addHeader(header);
// SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(\发布的wsdl里
的targetNamespace里的url\
// soapHeaderElement.setNamespaceURI(\发布的wsdl里的targetNamespace里的url\
// try
// {
// soapHeaderElement.addChildElement(\
// }
// catch (SOAPException e)
// {
// e.printStackTrace();
// }
// call.addHeader(soapHeaderElement);
//调用Web Service的方法
org.apache.axis.description.OperationDesc oper;
org.apache.axis.description.ParameterDesc param;
oper = new org.apache.axis.description.OperationDesc();
oper.setName(\
param = new org.apache.axis.description.ParameterDesc(new
javax.xml.namespace.QName(\\org.apache.axis.description.ParameterDesc.IN,
new javax.xml.namespace.QName(\http://www.w3.org/2001/XMLSchema\\
java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
param = new org.apache.axis.description.ParameterDesc(new
javax.xml.namespace.QName(\\org.apache.axis.description.ParameterDesc.IN,
new javax.xml.namespace.QName(\http://www.w3.org/2001/XMLSchema\\
java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
param = new org.apache.axis.description.ParameterDesc(new
javax.xml.namespace.QName(\\org.apache.axis.description.ParameterDesc.IN,
new javax.xml.namespace.QName(\http://www.w3.org/2001/XMLSchema\\
java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
oper.setReturnType(new
javax.xml.namespace.QName(\http://www.w3.org/2001/XMLSchema\
oper.setReturnClass(java.lang.String.class);
oper.setReturnQName(new javax.xml.namespace.QName(\
oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
oper.setUse(org.apache.axis.constants.Use.LITERAL);
oper.addFault(new org.apache.axis.description.FaultDesc(
new javax.xml.namespace.QName(\发布的wsdltargetNamespace里的url\
\
new javax.xml.namespace.QName(\发布的wsdltargetNamespace里的url\
true
));
call.setOperation( oper );
call.setOperationName(new javax.xml.namespace.QName(\发布的wsdltargetNamespace里的url\
里的
里的
里的
//调用Web Service,传入参数
String res = ( String ) call.invoke( new Object[](\
System.out.println(\
return res;
}
/**
* @param args
*/
public static void main(String[] args) {
try {
System.out.println(getResult());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
} catch (SOAPException e) {
e.printStackTrace();
}
}
}
2、利用Eclipse自动生成WebService client代码就容易多了:(由于还不会发图片,就用语言描述
了,大家酬和看吧。。。)
首先,new project,选择other,在输入框中输入Web Service Client,选中搜索后的结果,点击
Next,在Service definition中输入 WebService的发布地址,点击Finish
这样,WebService Client代码已经生成好了。
接下来写一个Test类,在main函数中输入如下代码:
String endpoint = \服务器的WebService的地址\
YourWebServiceNameProxy umsp = new YourWebServiceNameProxy (endpoint);
try {
String resultStr = umsp.opMethod(\
System.out.println(resultStr);
} catch (Exception e) {
System.out.println(\异常\
e.printStackTrace();
} catch (RemoteException e) {
System.out.println(\异常\
e.printStackTrace(); }
正在阅读:
Java如何调用webservice06-07
2009级毕业调研与报告指导指导书参照05-01
《王熙凤人物形象之研究》教学设计01-11
(统编版)二年级下册第三单元综合测试卷-附参考答案05-28
关于食堂道德问题调研报告10-23
飞行大队学习部策划书06-07
青岛版三年级上册第二单元信息窗一两位数乘一位数不进位10-07
非主流手机02-18
新编大学英语 2 小测试 403-18
展望怎么写02-16
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 调用
- webservice
- 如何
- Java
- 北京师范大学网络教育2011年期末考试国际法复习资料
- 日处理8万吨城市生活污水处理厂的初步设计-卡鲁塞尔式氧化沟
- 2018秋福师《小学语文教学论》在线作业一
- 2016-2017年秋学期无锡市普通高中期末考试试 高二化学(必修) -
- 中央电大人力资源管理(专科)期末复习题
- 我县工业经济发展过程中存在的问题及思考
- 专题总结1有机反应的分类
- 小学生心理健康状况调查及分析
- 苏教版四上语文复习卷
- 《硫和氮的氧化物》练习题_(附答案)_最全
- 江苏中职语文学测题库
- 迈克尔逊干涉仪的原理与应用
- “十三五” 沙拉酱项目可行性研究报告及投资前景预测分析 10
- 2010高考数学备考之放缩技巧
- 2014届高三新课标语文诊断性测试题
- “十三五”重点项目-汽车连杆生产建设项目商业计划书
- 穷人的F-16:歼-7PG在巴军眼中地位不次于F-16
- 一级建造师市政模拟题一
- 第三届大学生安全知识竞赛
- 高二化学选修五 第一章 认识有机化合物单元检测