java如何调用webservice

上传人:xiao****1972 文档编号:84822305 上传时间:2019-03-05 格式:DOC 页数:8 大小:117KB
返回 下载 相关 举报
java如何调用webservice_第1页
第1页 / 共8页
java如何调用webservice_第2页
第2页 / 共8页
java如何调用webservice_第3页
第3页 / 共8页
java如何调用webservice_第4页
第4页 / 共8页
java如何调用webservice_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《java如何调用webservice》由会员分享,可在线阅读,更多相关《java如何调用webservice(8页珍藏版)》请在金锄头文库上搜索。

1、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.Pref

2、ixedQName;import org.apache.axis.message.SOAPHeaderElement;import com.cezanne.golden.user.Exception;import com.cezanne.golden.user.UserManagerServiceProxy;import javax.xml.namespace.QName;import .MalformedURLException;import javax.xml.rpc.ServiceException;import javax.xml.soap.Name;import javax.xml.

3、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 = (Cal

4、l) service.createCall(); /将Web Service的服务路径加入到call实例之中. call.setTargetEndpointAddress( new .URL(endpoint) );/为Call设置服务的位置 / 由于需要认证,故需要设置调用的SOAP头信息。 Name headerName = new PrefixedQName( new QName(发布的wsdl里的targetNamespace里的url, string_itemName) ); org.apache.axis.message.SOAPHeaderElement header = new

5、 SOAPHeaderElement(headerName); header.addTextNode( blablabla ); call.addHeader(header); / SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(发布的wsdl里的targetNamespace里的url, SoapHeader); / soapHeaderElement.setNamespaceURI(发布的wsdl里的targetNamespace里的url); / try / / soapHeaderElement.addChildE

6、lement(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.Operation

7、Desc(); 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(t

8、rue); 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

9、(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.setOmittab

10、le(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

11、(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.setOp

12、erationName(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 (Malf

13、ormedURLException 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 = ums

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号