java 调用 WebService

一、wximport自动生成代码

wsimport -keep -p com.test.client http://localhost:8080/test/services/TestService?wsdl

-d:生成客户端执行类的class文件的存放目录
-s:生成客户端执行类的源文件的存放目录
-p:定义生成类的包名

二、通过ajax调用(不支持跨域调用)

 1 function callAxisWsPost(method, variable, value, url, _Namespace, callback, loadProcess) {
 2                 function getlen(str) {
 3                     var bytesCount = 0;
 4                     for (var i = 0; i < str.length; i++) {
 5                         var c = str.charAt(i);
 6                         if (/^[\u0000-\u00ff]$/.test(c))   //匹配双字节
 7                         {
 8                             bytesCount += 1;
 9                         }
10                         else {
11                             bytesCount += 2;
12                         }
13                     }
14                     return bytesCount;
15                 }
16
17                 var xmlhttp = null;
18                 if (window.ActiveXObject) {
19                     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
20                 } else if (window.XMLHttpRequest) {
21                     xmlhttp = new XMLHttpRequest();
22                 }
23                 var data;
24                 data = ‘<?xml version="1.0" encoding="utf-8"?>‘;
25                 data = data + ‘<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">‘;
26                 data = data + ‘<soap:Body>‘;
27                 data = data + ‘<‘ + method + ‘ xmlns="‘ + _Namespace + ‘">‘;
28                 for (var i = 0; i < variable.length; i++) {
29                     data = data + ‘<‘ + variable[i] + ‘>‘ + value[i] + ‘</‘ + variable[i] + ‘>‘;
30
31                 }
32                 data = data + ‘</‘ + method + ‘>‘;
33                 data = data + ‘</soap:Body>‘;
34                 data = data + ‘</soap:Envelope>‘;
35                 xmlhttp.onreadystatechange = function () {
36                     if (xmlhttp.readyState == 1) {
37                         if (loadProcess)
38                             loadProcess();
39                     }
40                     if (xmlhttp.readyState == 4) {
41                         if (xmlhttp.status == 200) {
42                             if (callback)
43                                callback(xmlhttp.responseText);
44                         }
45                     }
46                 }
47
48                 xmlhttp.Open("POST", url, true);
49                 xmlhttp.SetRequestHeader("Content-Type", "text/xml; charset=utf-8");
50                 xmlhttp.SetRequestHeader("Content-Length", getlen(data));
51                 xmlhttp.SetRequestHeader("SOAPAction", _Namespace + method);
52                 xmlhttp.Send(data);
53             }

三、通过URL Connection调用

 1 private  StringBuffer urlConnectionPost(String tourl,StringBuffer data) {
 2         StringBuffer sb = null;
 3         BufferedReader reader = null;
 4         OutputStreamWriter wr = null;
 5         URL url;
 6         try {
 7             url = new URL(tourl);
 8             URLConnection conn = url.openConnection();
 9             conn.setDoOutput(true);
10             conn.setConnectTimeout(1000 * 5);
11
12             //当存在post的值时,才打开OutputStreamWriter
13             if(data!=null && data.toString().trim().length()>0){
14                 wr = new OutputStreamWriter(conn.getOutputStream(),"UTF-8");
15                 wr.write(data.toString());
16                 wr.flush();
17             }
18
19             // Get the response
20             reader = new BufferedReader(new InputStreamReader(conn
21                     .getInputStream(),"UTF-8"));
22             sb = new StringBuffer();
23             String line = null;
24             while ((line = reader.readLine()) != null) {
25                 sb.append(line + "/n");
26             }
27         } catch (IOException e) {
28             // TODO Auto-generated catch block
29             e.printStackTrace();
30         }finally{
31             try {
32                 if(wr!=null){
33                     wr.close();
34                 }
35                 if(reader!=null){
36                     reader.close();
37                 }
38             } catch (IOException e) {
39                 // TODO Auto-generated catch block
40                 e.printStackTrace();
41             }
42         }
43         return sb;
44     }

四、通过HttpClient调用

转载:http://blog.csdn.net/bhq2010/article/details/9210007

基于浏览器的测试工具(RESTClient)

组件附加地址:https://addons.mozilla.org/zh-CN/firefox/addon/restclient/

时间: 2024-10-30 22:19:05

java 调用 WebService的相关文章

Java调用WebService 接口 实例

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

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

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的方法总结

1.使用命令wsimport自动生成java代码 wsimport是jdk自带的,可以根据wsdl文档生成客户端调用代码的工具.  wsimport.exe位于JAVA_HOME\bin目录下. 常用参数为: •-d<目录>  - 将生成.class文件.默认参数. •-s<目录> - 将生成.java文件. •-p<生成的新包名> -将生成的类,放于指定的包下. •(wsdlurl) - http://server:port/service?wsdl,必须的参数. 示

(转)java 调用webservice的各种方法总结

原文地址:http://www.blogjava.net/zjhiphop/archive/2009/04/29/webservice.html 现在webservice加xml技术已经逐渐成熟,但要真正要用起来还需时日!!    由于毕业设计缘故,我看了很多关于webservice方面的知识,今天和大家一起来研究研究webservice的各种使用方法.    一.利用jdk web服务api实现,这里使用基于 SOAP message 的 Web 服务     1.首先建立一个Web serv

java 调用webservice的各种方法总结

一.利用jdk web服务api实现,这里使用基于 SOAP message 的 Web 服务 1.首先建立一个Web services EndPoint: Java代码 package Hello; import javax.jws.WebService; import javax.jws.WebMethod; import javax.xml.ws.Endpoint; @WebService public class Hello { @WebMethod public String hell

java调用webservice的四种方式

webservice: 就是应用程序之间跨语言的调用 wwww.webxml.com.cn 1.xml 2.    wsdl: webservice description language web服务描述语言 通过xml格式说明调用的地址方法如何调用,可以看错webservice的说明书 3.soap simple object access protoacl (简单对象访问协议) 限定了xml的格式 soap 在http(因为有请求体,所以必须是post请求)的基础上传输xml数据 请求和响

JAVA调用webservice方法(axis)

项目需求上需要调用另一个合作伙伴的webservice接口,之前用的是sax的调用方式,开始摸索这个,感觉这个也挺简单的,现在把自己的实现过程分享给大家,写的不好的地方,望大家勿喷. 详细代码如下: package com.ancs.oa; import java.util.Date; import javax.xml.namespace.QName; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.En

Java调用WebService之Axis实现

import org.apache.axis.client.Call; import org.apache.axis.client.Service; /** * @ClassName: TestAxis * @Description: TODO(描述这个类的作用) * @author Roy_70 * @date 2017年4月18日 上午9:16:26 * */ public class TestAxis { public static void main(String []args){ St

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

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