java如何调用webservice接口

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 = "WebService服务地址";     // 创建 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", "string_itemName") );           org.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的方法          org.apache.axis.description.OperationDesc oper;          org.apache.axis.description.ParameterDesc param;          oper = new org.apache.axis.description.OperationDesc();          oper.setName("opName");          param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);          param.setOmittable(true);          oper.addParameter(param);          param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg1"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);          param.setOmittable(true);          oper.addParameter(param);          param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg2"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), 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", "string"));          oper.setReturnClass(java.lang.String.class);          oper.setReturnQName(new javax.xml.namespace.QName("", "return"));          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("发布的wsdl里的targetNamespace里的url", "Exception"),                        "Exception",                        new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url", "Exception"),                         true                       ));   call.setOperation( oper );   call.setOperationName(new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url", "opName"));    //调用Web Service,传入参数   String res = ( String ) call.invoke( new Object[]("arg0","arg1"));   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("arg0","arg1"); System.out.println(resultStr); } catch (Exception e) { System.out.println("异常"); e.printStackTrace();} catch (RemoteException e) { System.out.println("RemoteException异常"); e.printStackTrace();}
时间: 2024-10-19 04:09:06

java如何调用webservice接口的相关文章

Java调用WebService 接口 实例

这里给大家介绍一下,Java调用webservice的一个实例的过程. 本项目不能运行,因为接口地址不可用. 这里只是给大家介绍一个过程,同时留作自己的笔记.如果要学习,可以参照别人的实例.比较好. ①选择项目根目录的src ,右键,new --> webservice client 然后输入地址: http://172.18.100.52:456/hello?wsdl 必须要加wsdl结尾,这样才是一个webservice的接口. finlish.这时候刷新项目.可以看到项目下/src/com

php调用webservice接口,java代码接收不到参数

前段时间做了一个项目的二次开发,有个功能是需要php调用java实现的webservice接口,并传递一些参数给接口,然后按照对方提供的接口说明文档进行传参调用,java那边有接收到请求,但是参数总是为null,部分代码如下: 1 $client = new SoapClient ($this->webServiceUrl); 2 $client->soap_defencoding = 'utf-8'; 3 $client->xml_encoding = 'utf-8'; 4 $para

java调用webservice接口方法

webservice的 发布一般都是运用WSDL(web service descriptive language)文件的款式来发布的,在WSDL文件里边,包含这个webservice暴露在外面可供运用的接口.今日查找到了非常好的 webservice provider列表 http://www.webservicex.net/WCF/default.aspx 这上面列出了70多个包含许多方面的free webservice provider,utilities->global weather就

java 调用webservice接口wsdl,推荐使用wsdl2java,放弃wsimport

网上说wsimport是jdk1.6后自带的客户端生成调用webservice接口的工具,其实我挺喜欢原生的东西,毕竟自家的东西用着应该最顺手啊,但往往让人惊艳的是那些集成工具. 本机jdk1.8.1的,直接按网上说的wsimport -keep -p wsimport.test http://****:****/***.wsdl 报警报错,报警warning可以忽略,但错误error 难以解决,说具有相同名称 "xxx" 的类/接口已在使用.请使用类定制设置来解决此冲突.找了许多资料

Axis2 调用Webservice 接口

1,先学会部署环境,搭建Axis2环境. http://blog.csdn.net/lanqibaoer/article/details/22731291 现在调用一个现有的公共webservice接口,http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?op=TranslatorString 调用方法: TranslatorString  输入中文,翻译成 拼音.英文. 参数:wordKey(中文) 现在要做,翻译词:[随便],代码如

php中创建和调用webservice接口示例

这篇文章主要介绍了php中创建和调用webservice接口示例,包括webservice基本知识.webservice服务端例子.webservice客户端例子,需要的朋友可以参考下 作为开发者来讲,要想写webservice接口或者调用别人的webservice接口,首先需要了解什么是webservice.简单说, WebService就是一些站点开放一些服务出来, 也可以是你自己开发的Service, 也就是一些方法, 通过URL,指定某一个方法名,发出请求,站点里的这个服务(方法),接到

SQL调用WebService接口

今天在做一个很奇葩的东西,中间有个过程要在SQL触发器里面调用webservice接口.呵呵~ --调用webService---------------- declare @ServiceUrl as varchar(1000) DECLARE @UrlAddress varchar(500) --WebService地址:以http开头,结尾带斜杠,例如'http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/' set @

使用JS调用WebService接口

<script> $(document).ready(function () { var username = "admin"; var password = "123456"; /*==JS使用HTTP-POST方式调用WebService接口(仅IE调试)==*/ //var host_url = "http://localhost/Interface/Login.asmx/Login?UserName=" + username

java swing调用webservice实现qq在线查询是否在线

原文:java swing调用webservice实现qq在线查询是否在线 代码下载地址:http://www.zuidaima.com/share/1550463277042688.htm 隐身的也可以看到,我测试过了. 标签: swing qq 在线查询 webservice话题: WebService 脚本和工具 Swing和AWT开发