- 浏览: 143575 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
javavsnet:
jsp页面:<%response.setHeader(& ...
IE中iframe跨域丢失Session问题 p3p -
lz12366:
我测试的,IE7.0参数长度不止2083.。不知道你是怎么测试 ...
ie6 ie7 ie8 url长度的问题 -
dingherry:
挺好理解的,学习了
<script>标签的for属性和event属性 -
njutzyg:
你好,请问loadrunner如何监控weblogic10
LR对Tuxedo/Weblogic/websphere/Apache/MQ的性能监控步骤 -
sapphiredina:
"Tuxedo是一个很好的交易中间件,包含消息中间件 ...
Tuxedo安装,license,例子和远程客户端配置
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如何通过WSDL文件来调用这些web service:
注意,以下的代码并没有经过真正的测试,只是说明这些情况,不同版本的Axis相差很大,大家最好以apache网站上的例子为准,这里仅仅用于说明其基本用法。
1,直接AXIS调用远程的web service
我觉得这种方法比较适合那些高手,他们能直接看懂XML格式的WSDL文件,我自己是看不懂的,尤其我不是专门搞这行的,即使一段时间看懂,后来也就忘记了。直接调用模式如下:
import java.util.Date;
import java.text.DateFormat;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import java.lang.Integer;
import javax.xml.rpc.ParameterMode;
public class caClient {
public static void main(String[] args) {
try {
String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl";
//直接引用远程的wsdl文件
//以下都是套路
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("addUser");//WSDL里面描述的接口名称
call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_DATE,
javax.xml.rpc.ParameterMode.IN);//接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
String temp = "测试人员";
String result = (String)call.invoke(new Object[]{temp});
//给方法传递参数,并且调用方法
System.out.println("result is "+result);
}
catch (Exception e) {
System.err.println(e.toString());
}
}
}
2,直接SOAP调用远程的webservice
这种模式我从来没有见过,也没有试过,但是网络上有人贴出来,我也转过来
import org.apache.soap.util.xml.*;
import org.apache.soap.*;
import org.apache.soap.rpc.*;
import java.io.*;
import java.net.*;
import java.util.Vector;
public class caService{
public static String getService(String user) {
URL url = null;
try {
url=new URL("http://192.168.0.100:8080/ca3/services/caSynrochnized");
} catch (MalformedURLException mue) {
return mue.getMessage();
}
// This is the main SOAP object
Call soapCall = new Call();
// Use SOAP encoding
soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
// This is the remote object we're asking for the price
soapCall.setTargetObjectURI("urn:xmethods-caSynrochnized");
// This is the name of the method on the above object
soapCall.setMethodName("getUser");
// We need to send the ISBN number as an input parameter to the method
Vector soapParams = new Vector();
// name, type, value, encoding style
Parameter isbnParam = new Parameter("userName", String.class, user, null);
soapParams.addElement(isbnParam);
soapCall.setParams(soapParams);
try {
// Invoke the remote method on the object
Response soapResponse = soapCall.invoke(url,"");
// Check to see if there is an error, return "N/A"
if (soapResponse.generatedFault()) {
Fault fault = soapResponse.getFault();
String f = fault.getFaultString();
return f;
} else {
// read result
Parameter soapResult = soapResponse.getReturnValue ();
// get a string from the result
return soapResult.getValue().toString();
}
} catch (SOAPException se) {
return se.getMessage();
}
}
}
3,使用wsdl2java把WSDL文件转成本地类,然后像本地类一样使用,即可。
这是像我这种懒人最喜欢的方式,仍然以前面的global weather report为例。
首先 java org.apache.axis.wsdl.WSDL2Java http://www.webservicex.net/globalweather.asmx.WSDL
原本的网址是http://www.webservicex.net/globalweather.asmx?WSDL,中间个各问号,但是Linux下面它不能解析,所以去掉问号,改为点号。
那么就会出现4个文件:
GlobalWeather.java GlobalWeatherLocator.java GlobalWeatherSoap.java GlobalWeatherSoapStub.java
其中GlobalWeatherSoap.java是我们最为关心的接口文件,如果你对RMI等SOAP实现的具体细节不感兴趣,那么你只需要看接口文件即可,在使用的时候,引入这个接口即可,就好像使用本地类一样。
ip查询接口 http://webservice.36wu.com/ipService.asmx
天气预报接口 http://webservice.36wu.com/weatherService.asmx
身份证查询接口 http://webservice.36wu.com/IdCardService.asmx
手机归属地接口 http://webservice.36wu.com/MobilePhoneService.asmx
翻译接口 http://webservice.36wu.com/TranslationService.asmx
火车时刻接口:http://webservice.36wu.com/TrainService.asmx
股票查询接口:http://webservice.36wu.com/StockService.asmx
邮编接口:http://webservice.36wu.com/ZipcodeService.asmx
二维码Web服务
http://webservice.36wu.com/DimensionalCodeService.asmx
公交查询Web服务
http://webservice.36wu.com/mapService.asmx
ISBN查询Web服务
http://webservice.36wu.com/ISBNService.asmx
ICP备案查询Web服务 http://webservice.36wu.com/ICPServic.asmx
发表评论
-
使用Axis开发Web Service程序
2012-06-20 07:33 1067Web Service都是可以自 ... -
自动登录
2012-02-17 15:19 1274一、什么是用户自动登 ... -
系统的全部优化
2012-02-16 11:31 0A、防火墙设置 1.查看防火墙状态 ... -
XHTML MP MIME 类型与文件扩展
2011-08-15 21:23 856MIME 类型 下面三个 MIME 类型可用于 XHTML ... -
Ubuntu apache2重启命令与主机配置文件
2011-07-21 11:18 1089# Include ports listing ... -
Java jsp/servlet GET/POST 字符集编码问题(中文乱码)
2011-06-23 17:09 1357比如以下两个jsp页面之间的传递:a.jsp页面内容:< ... -
中国大陆的身份证检验算法,以及15位和18位身份证的相互转换
2010-11-26 11:56 1895import java.util.regex.*;/*** 中 ... -
HttpSessionBindingListener使用
2010-06-20 14:50 1460netbank2001:当成功时,把 ... -
使用Session机制一些常见的问题(转)
2010-06-20 14:34 7041、session在何时被创建 ... -
tomcat5.5的SSL认证的配置
2010-03-29 16:25 1665:Tomcat5.5单项认证的配置方法: 第一步:Tomca ... -
Yahoo!团队实践分享:网站性能优化的34条黄金守则(转)
2010-03-12 12:52 2560Yahoo!的Exceptional Performanc ... -
js函数的几种写法 闭包概要
2010-02-06 10:30 4088最常见的: Js代码 ... -
JS代码大全
2010-02-06 10:17 953事件源对象 event.srcElement.t ... -
JS高级应用(二)
2010-02-06 10:13 909//检查网页是否存在 function CheckUR ... -
JS高级应用(一)
2010-02-06 10:12 1081页面跳转: window.locat ... -
<script>标签的for属性和event属性
2010-01-30 09:21 2704<script language="javas ... -
ie6 ie7 ie8 url长度的问题
2010-01-28 21:17 6187最近用Ajax来做一个东东,可是在IE8中没错误,I ... -
Java取得当前路径的方法
2010-01-21 21:02 2218同样是Java的文件移动函数源代码(整个目录移动)中提到的写批 ... -
HTML文件的执行顺序(和javascript混合时)
2010-01-13 20:35 3113HTML在浏览器端是解释执行的,这在另一方面告诉我们代码是顺序 ... -
HTTP 報頭,Content-disposition
2009-09-19 14:27 1498Content-disposition 是 MIME 协议的扩 ...
相关推荐
Java调用WebService接口是Web应用程序开发中的常见任务,主要用于实现不同系统间的远程通信和数据交换。在本资料中,我们重点关注Java如何与基于SOAP(Simple Object Access Protocol)的WebService进行交互。 1. *...
Java 调用 Webservice 接口方法 Webservice 是一种基于网络的远程过程调用(RPC)机制,允许不同的系统之间进行交互和数据交换。Java 调用 Webservice 接口方法是将 Webservice 集成到 Java 应用程序中的一个重要...
JAVA调用WEBSERVICE接口
Java调用WebService接口的方法主要涉及两个关键点:一是理解WebService的工作原理,二是使用相应的Java库进行调用。本文将详细讲解这两个方面。 首先,WebService是一种基于标准的、平台和语言无关的通信方式,它...
java调用webservice接口案例,精简,service调用webservice接口案例;不用生成一堆代码,逻辑清晰
"Java 使用 XFire 调用 webService 接口" 在本文中,我们将学习如何使用 XFire 框架在 Java 中调用 webService 接口。XFIRE 是一个基于 Java 的开源框架,用于简化 Web 服务的开发和集成。下面,我们将通过一个简单...
Java调用WebService接口是开发中常见的一种跨平台通信方式,主要通过SOAP(Simple Object Access Protocol)协议进行数据交换。在本篇文章中,我们将探讨如何在Java中调用WebService接口,特别是基于WSDL(Web ...
本文将深入探讨如何使用Java调用WebService接口,以实例分析有参方法Add的使用技巧。 首先,我们需要了解WebService的基础知识。WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的Web应用程序,它能够通过HTTP...
Java调用WebService接口是开发中常见的一种跨平台通信方式,主要通过SOAP(Simple Object Access Protocol)协议进行数据交换。在本篇文章中,我们将探讨如何在Java中调用基于WSDL(Web Service Description ...
Java Axis 直接调用webservice 接口工具类, 无需根据wsdl编译客户端,需要axis相关包,测试使用axis 1.4, 附demo引入axis包后直接可以测试;
总的来说,使用Axis调用WebService接口在Java中是一种高效且灵活的方法。通过上述步骤,你可以轻松地与任何支持SOAP的WebService进行通信。在实践中,根据具体需求和项目规模,可能还需要考虑更多的细节和优化措施。
综上所述,通过Java调用HTTPS Web Service接口涉及的关键点包括证书的信任管理、自定义`SSLSocketFactory`以及正确处理网络请求。了解并掌握这些知识点,能帮助开发者在安全的环境中进行Web Service交互。
### 使用HttpClient调用WebService接口详解 #### 一、概述 在现代软件开发中,Web服务(尤其是WebService)作为实现系统间交互的一种重要手段被广泛采用。WebService提供了通过HTTP协议进行远程过程调用的能力,...
"Java 调用 Webservice 的几种方法总结" Java 调用 Webservice 的几种方法总结中,主要介绍了使用 JDK Web 服务 API、Axis 和 XFire 等方法来调用 Webservice。下面将对每种方法进行详细的介绍。 使用 JDK Web ...
3. 在Java客户端,调用WebService方法并将JSON格式的字符串作为参数传递给服务端。这个字符串将被序列化为SOAP消息,然后通过网络发送给WebService端点。在客户端代码中,一般需要有一个客户端代理类,这个代理类...
本示例,"JAVA调用Webservice接口Demo",将向我们展示如何利用Java来与Webservice进行交互,主要包含两个功能:IP查询和根据省份查找城市。这个项目可以直接运行,方便开发者快速理解并应用到实际项目中。 首先,...
调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理,通过C#添加Web引用方式访问JavaWebService的方法,除了string...
4. **调用服务方法**:通过服务代理,你可以像调用本地方法一样调用Web服务的远程方法,并传递必要的参数。 ```java String result = port.someWebServiceMethod(param1, param2); ``` 5. **解析XML响应**:Web...
最近项目中遇到需要去掉老系统的webservice服务中的insert方法,找了很久,发现这样最简单,实测有效!!!