实在不才啊,今天才发现jdk6里有个wsimport.exe,使用可以生成目标Web服务器的本地调用类,然后就可以在本地程序中像使用本地代码一样调用WebService了,如此一来和DotNet下的Web服务的使用方法就基本一样。(活到老学到老啊)
使用方法如下:
1、执行wsimport命令:
wsimport http://localhost:9999/AccountService?WSDL
2、将生成的代码进行打包:
jar cvf com.zywang.cxf.jar com/zywang/cxf/
3、将生成的jar包添加到项目的构建路径中,进行引用,从使用的情况看Java的Web服务和DotNet的稍有不同
我分别使用DotNet、Spring和CXF创建了三个相同功能的Web服务,以下是客户端代码片段
访问DotNet的Web服务:
/**
* @author ZYWANG 2011-4-19
*/
public static void main(String[] args) {
AccountService service = new AccountService();
AccountServiceSoap serviceSoap = service.getAccountServiceSoap();
Account account = new Account();
account.setName("Hello ZYWANG " + (new Date()));
serviceSoap.insertAccount(account);
ArrayOfAccount arrayOfAccount = serviceSoap.getAccounts();
List<Account> accounts = arrayOfAccount.getAccount();
for (Account a : accounts) {
System.out.println(a.getName());
}
}
访问Spring的Web服务:
/**
* @author ZYWANG 2011-4-19
*/
public static void main(String[] args) {
AccountService_Service service = new AccountService_Service();
AccountService accountService = service.getAccountServicePort();
Account account = new Account();
account.setName("王朝阳 by WS " + new Date());
accountService.insertAccount(account);
List<Account> accounts = accountService.getAccounts("");
for (Account account2 : accounts) {
System.out.println(account2.getName());
}
}
访问CXF的Web服务:
/**
* @author ZYWANG 2011-4-19
*/
public static void main(String[] args) {
AccountDao_Service service = new AccountDao_Service();
AccountDao accountService = service.getAccountDaoPort();
Account account = new Account();
account.setName("Hello 王朝阳 by CXF " + (new Date()));
accountService.insertAccount(account);
List<Account> list = accountService.getAccounts("");
for (Account a : list) {
System.out.println(a.getName());
}
}
因为主要是使用wsimport和jar这两个命令,所以写了个小工具来自动生成jar包,在附件中(源码可以反编译得到)
附件中还有三种Web服务的程序,供需要的朋友参考。
工具运行截图:
- 大小: 53 KB
分享到:
相关推荐
Java调用Exchange Web Services(EWS)是一种常见的技术实践,用于与Microsoft Exchange Server进行交互,进行邮件发送、日历管理、联系人同步等任务。EWS是Exchange Server提供的一组基于SOAP协议的Web服务接口,...
1. **Java调用.NET Web Services** 在Java中调用.NET Web Services主要依赖于SOAP(简单对象访问协议)和WSDL(Web服务描述语言)。首先,你需要生成一个Java Web Service,这可以通过JBuilder完成。在JBuilder中...
通过上述代码分析,我们可以了解到使用Java调用Web服务的具体实现方式,包括基于Apache Axis的SOAP Web Service调用和使用SOAP协议直接构建调用的过程。这对于Java开发者来说是非常实用的知识点,可以帮助他们在实际...
总结,Java调用.NET Web服务的过程主要包括理解WSDL,使用JAX-WS生成Java客户端代码,构建并运行客户端,处理异常,以及可能的性能优化和安全措施。在实际开发中,还需要关注兼容性、版本管理和文档记录等方面,确保...
要在Java中使用Axis2调用Web服务,首先需要在项目中添加Axis2的依赖库。这可以通过Maven或者直接下载jar包到项目的类路径中实现。然后,使用wsimport工具生成客户端 stubs,这些stubs将根据WSDL文件自动创建客户端...
在客户端调用Web服务时,我们通常会使用服务代理,这是由JAX-WS自动生成的Java类。我们可以像调用本地方法一样调用Web服务的方法。例如: ```java Service service = Service.create(new URL(...
### 用Java调用WebServices的三种方式 随着互联网技术的发展与成熟,WebServices作为一种标准的、跨平台的、基于XML的信息交换模式被广泛应用。在Java领域,调用WebServices通常涉及遵循一定的技术规范和标准。本文...
本教程将通过一个具体的实例,讲解如何使用Java调用.NET Webservices,帮助初学者理解和掌握这两种技术的结合使用。 首先,理解Web Services的基本概念至关重要。Web Services是一种基于网络的、标准化的模块化应用...
在.NET开发环境中,有时我们需要与Java Web服务进行交互,实现跨平台的数据交换和功能调用。这涉及到一种称为“互操作性”(Interoperability)的技术,它允许不同编程语言和平台之间的通信。本文将详细讲解如何在...
Java作为多平台编程的强大工具,提供了丰富的API和库来调用Web服务。本实例将聚焦于如何使用Java调用天气预报的Web服务,通过分析提供的文件`WeatherUtil.java`,我们可以学习到如何与`webxml.com.cn`的天气预报Web ...
在MyEclipse中,我们可以利用WSDL文件生成客户端代理类,这使得调用Web服务就像调用本地方法一样简单。客户端代码会使用`javax.xml.ws.Service`类来实例化一个服务代理,然后通过代理对象调用服务端的方法。 **7. ...
跨语言调用Web服务时,可能遇到类型映射、序列化和反序列化等问题。Java和C#有不同的数据类型,需要确保它们之间的兼容性。此外,安全设置的匹配也至关重要,比如加密算法和证书的使用。 7. **调试与测试**: ...
Java Web Services 是一种利用 Java 技术开发网络服务的方式,它使得不同系统之间能够通过互联网进行数据交换和功能调用。这个教程将深入讲解 Java Web Services 的核心概念和技术,帮助开发者理解如何创建、部署和...
这将生成一个服务接口和服务实现类,其中包含了调用Web服务的方法。 3. 编写Java代码:实例化生成的服务实现类,调用其方法发起Web服务请求。注意设置SOAPAction头,因为这是.NET ASMX Web服务识别操作的关键。如果...
2. 调用服务:通过代理对象调用Web服务方法。 ```java String response = myWebService.sayHello("World"); System.out.println(response); ``` 六、内部与外部访问 - 内部访问:通常是指在同一应用内或者在同一台...