java调用webservicejava调用别人写好的webservice接口,在线等
java调用webservice 时间:2021-06-02 阅读:(
)
java中如何调用webservice接口来取得数据
Java调用WebService可以直接使用Apache提供的axis.jar自己编写代码,或者利用Eclipse自动生成WebService Client代码,利用其中的Proxy类进行调用。
理论上是一样的,只不过用Eclipse自动生成代码省事些。
1、编写代码方式:
.yudun.test;
import java.rmi.RemoteException;
.apache.axis.client.Call;
.apache.axis.client.Service;
.apache.axis.message.PrefixedQName;
.apache.axis.message.SOAPHeaderElement;
.cezanne.golden.user.Exception;
.cezanne.golden.user.UserManagerServiceProxy;
import javax.xml.namespace.QName;
import .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 = "WebService服务地址";
// 创建 Service实例
Service service = new Service();
// 通过Service实例创建Call的实例
Call call = (Call) service.createCall();
//将Web Service的服务路径加入到call实例之中.
call.setTargetEndpointAddress( new .URL(endpoint) );//为Call设置服务的位置
// 由于需要认证,故需要设置调用的SOAP头信息。
Name headerName = new PrefixedQName( new QName("发布的wsdl里的targetNamespace里的url", "string_itemName") );
.apache.axis.message.SOAPHeaderElement header = new SOAPHeaderElement(headerName);
header.addTextNode( "blablabla" );
call.addHeader(header);
// SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("发布的wsdl里的targetNamespace里的url", "SoapHeader");
// soapHeaderElement.setNamespaceURI("发布的wsdl里的targetNamespace里的url");
// try
// {
// soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");
// }
// catch (SOAPException e)
// {
// e.printStackTrace();
// }
// call.addHeader(soapHeaderElement);
//调用Web Service的方法
.apache.axis.description.OperationDesc oper;
.apache.axis.description.ParameterDesc param;
oper = .apache.axis.description.OperationDesc();
oper.setName("opName");
param = .apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg0"),.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
param = .apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg1"),.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
param = .apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg2"),.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);java调用webservice接口具体怎么调用啊?有没有简单点的
最简单的就是直接弄一个URL类。
通过buffer得到结果。
URL?tmp?=?new?URL(url);
URLConnection?connection?=?tmp.openConnection();??
connection.connect();?
BufferedReader?reader?=?new?BufferedReader(new?InputStreamReader(connection.getInputStream()));
String?line;?
while((line?=?reader.readLine())!=?null){??
????result?+=?line;??
????result?+=?"
";??
}
//result就是了关于Webservice接口的Java客户端调用
String endpoint="http://localhost:8080/xxx/services/userservice?wsdl";
String id = "11111";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL(endpoint));
call.setOperationName("webservice方法名");
String res = (String) call.invoke(new Object[] {id});
看了你的描述觉得你把webservice想得太复杂化了,其实就是一个jar包和几个类。
以上就是最简单的webservice客户端用法,和反射有点像。
当然返回值不一定是String,返回的类型和格式要问服务提供方。
我用的是axis的,我不了解websphere什么的,但是webservice就是那么易用的东西。
用Java调用webservice,并解析返回值,大神们 求助
你是哪个公司?我在上班,我不能上QQ,我给你贴代码,有问题你追问我!
private void 方法名(String storecd) {
// 传递参数
param.clear();
param.put("webservice的输入值的名字,(必须完全一样)", 参数);
//连接web service
openRequest(getString(R.string.EXSERVER_SCRAP_GetShipName), param,
essMode.Asynchronous, essHandler);
}
//数据处理
private essHandler essHandler = new essHandler(
this) {
@Override
//数据异常处理
public void onExceptionHandler(PacerURLRequest request, String errMessage){
currentDialog=showAlertDialog_OK(getString(R.string.MESSAGE_CODE_08),
getString(R.string.MSG_COMMON_OK),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
}
//处理获取的数据
public void onDataReadyHandler(PacerURLRequest request) {
try {
essBundle bundle = request.getBundle();
if (getString(R.string.EXSERVER_SCRAP_GetShipName).equals(request.getResource())) {
ArrayList
无忧云怎么样?无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点,目前商家开启了夏日清凉补贴活动,商家的机器还是非常...
imidc怎么样?imidc彩虹网路,rainbow cloud知名服务器提供商。自营多地区数据中心,是 Apnic RIPE Afrinic Arin 认证服务商。拥有丰富的网路资源。 在2021年 6.18 开启了输血大促销,促销区域包括 香港 台湾 日本 莫斯科 等地促销机型为 E3係,参与促销地区有 香港 日本 台湾 莫斯科 等地, 限量50台,售罄为止,先到先得。所有服务器配置 CPU ...
今天父亲节我们有没有陪伴家人一起吃个饭,还是打个电话问候一下。前一段时间同学将网站账户给我说可以有空更新点信息确保他在没有时间的时候还能保持网站有一定的更新内容。不过,他这个网站之前采用的主题也不知道来源哪里,总之各种不合适,文件中很多都是他多年来手工修改的主题拼接的,并非完全适应WordPress已有的函数,有些函数还不兼容最新的PHP版本,于是每次出现问题都要去排查。于是和他商量后,就抽时间把...
java调用webservice为你推荐
waze马来西亚中文导航waze地图匹配函数vlookup函数的使用方法 Excel中vlookup函数怎么用orphanremoval大家知道orphan这个单词除了孤儿还有什么意思吗?扫图问个非常白痴的问题撒,扫图是什么意思?12种颜色十二种颜色的英文怎么读?网络备份网络系统备份的主要目的以及网络系统备份体系主要包括哪几方面?免费下载空间要下载免费空间播放器怎么弄私服发布站程序怎么做游戏私服发布网站?包括网页游戏私服发布站程序怎么开一个私服发布网站?tokenstreamtokenerror是什么意思
手机域名注册 php主机租用 万网域名证书查询 阿里云邮箱登陆首页 singlehop burstnet 256m内存 gomezpeer 搜狗12306抢票助手 论坛空间 100m免费空间 卡巴斯基官方免费版 免费防火墙 腾讯实名认证中心 免费申请个人网站 美国堪萨斯 免费cdn 网游服务器 购买国外空间 环聊 更多