基于WSDL4J.jar写了一个简单的Web服务wsdl文件解析工具,,能够解析大部分与XML Schema规范兼容的Web服务,主要的目的是用来学习WSDL4J这个工具及如何使用它们解析一个Web服务。不多说了,测试代码如下,完整的代码请从附件下载。
package wsclient.test;
import java.util.Iterator;
import java.util.List;
import wsclient.domain.OperationInfo;
import wsclient.domain.ParameterInfo;
import wsclient.domain.ServiceInfo;
import wsclient.util.ComponentBuilder;
public class WSClient {
public static void testWSDL4J() {
int i = 0, j = 0;
try {
ComponentBuilder builder = new ComponentBuilder();
ServiceInfo serviceInfo = new ServiceInfo();
String wsdllocation = "http://localhost:8080/axis/services/Phone?wsdl";
serviceInfo.setWsdllocation(wsdllocation);
serviceInfo = builder.buildserviceinformation(serviceInfo);
System.out.println("");
Iterator iter = serviceInfo.getOperations();
System.out.println("现在可以查看远端Web服务对象的有关情况了(对应本地Web服务类,ServiceInfo)");
System.out.println(serviceInfo.getName() + "提供的操作有:");
while (iter.hasNext()) {
i++;
OperationInfo oper = (OperationInfo) iter.next();
System.out.println("");
System.out.println("操作:" + i + " " + oper.getTargetMethodName());
List inps = oper.getInparameters();
List outps = oper.getOutparameters();
if (inps.size() == 0) {
System.out.println("此操作所需的输入参数为:");
System.out.println("执行此操作不需要输入任何参数!");
} else {
System.out.println("此操作所需的输入参数为:");
for (Iterator iterator1 = inps.iterator(); iterator1.hasNext();) {
ParameterInfo element = (ParameterInfo) iterator1.next();
System.out.println("参数名为:" + element.getName());
System.out.println("参数类型为:" + element.getKind());
}
}
if (outps.size() == 0) {
System.out.println("执行此操作不返回任何参数!");
} else {
System.out.println("此操作的输出参数为:");
for (Iterator iterator2 = outps.iterator(); iterator2.hasNext();) {
ParameterInfo element = (ParameterInfo) iterator2.next();
System.out.println("参数名:" + element.getName());
System.out.println("类型为:" + element.getKind());
}
}
System.out.println("");
}
}
catch (Exception e) {
System.err.println(e.getMessage());
e.printStackTrace();
}
}
public static void main(String[] args) {
WSClient.testWSDL4J();
}
}
分享到:
- 2007-11-10 22:03
- 浏览 20642
- 评论(6)
- 论坛回复 / 浏览 (2 / 12456)
- 查看更多
相关推荐
一个用wsdl4j.jar,ws-commons-java5-1.0.1.jar,XmlSchema-1.3.2.jar完全解析wsdl的例子, 本例子原本是xcalia studio中的一个模块,拿来和初次接触的人参考,因为我走了很多弯路,希望别人能少走。
标题中的“wsdl例子”重复多次,显然在强调WSDL(Web Service Description Language)这一主题,而描述中的内容虽然重复,但可以理解为对WSDL的深入探讨或示例的展示。 **WSDL(Web Service Description Language)...
在这个例子中,`soap`模块用于处理WSDL解析和SOAP请求。`createClient`函数接收WSDL的URL,然后返回一个可以调用服务操作的对象。`MyService.MyOperation`代表服务操作,`args`是传递给操作的参数。 为了更深入地...
**WSDL(Web Services Description Language)教程标签解析** WSDL,全称为Web Services Description Language,是一种基于XML的语言,专门设计用来描述Web服务及其接口。它允许开发者明确地定义服务的操作、消息...
总之,解析WSDL文件并将其内容写入Excel是一项实用的技术任务,有助于我们更好地管理和利用Web服务的相关信息。通过掌握相关的编程技术和库,我们可以高效地完成这个任务,提升工作效率。在实际应用中,可能还需要...
在这个例子中,axis.jar、wsdl4j.jar和activation.jar是运行命令所需的库文件,YourService.java是你的服务接口类,输出的WSDL文件会被保存在/output/folder路径下。 第六步:添加依赖库 为了执行上述命令,你需要...
1. **解析WSDL**:将WSDL文件转换为可读的、易于理解的格式,展示服务的所有操作和消息结构。 2. **调用Web服务**:根据WSDL文件中的定义,用户可以输入必要的参数并发起服务请求,工具会执行调用并返回结果。 3. **...
2. **WSDL解析**:在PHP中,`SoapClient`类可以自动处理WSDL文件,解析其中的服务定义,然后根据这些定义生成调用方法。例如,`client.php`可能就是使用`SoapClient`实例化并调用服务的方法。 3. **服务端创建**:`...
首先,我们需要准备一个WSDL2OBJC工具,这是一个开源项目,它能够根据WSDL文件自动生成Objective-C客户端代码。这个工具简化了iOS开发者的工作,因为我们不必手动编写复杂的SOAP请求和解析响应。你可以通过GitHub等...
通过一个例子,可以更好地理解WSDL文档的结构和每个元素的作用。例如,一个简单的Web服务的WSDL文档,该服务支持名为sayHello的唯一操作,该操作通过在http上运行SOAP协议来实现的。该请求接受一个字符串name,经过...
本教程将围绕“WSDL生成Web Service java客户端”这一主题,详细介绍如何利用WSDL文件创建Java客户端来调用Web服务。 首先,WSDL文件是一种XML格式的文档,它描述了一个Web服务的接口,包括服务提供的操作、消息...
在这个例子中,WSDL定义了一个名为"MyService"的服务,它有一个操作"MyOperation",接收"MyRequest"消息并返回"MyResponse"消息。服务通过SOAP绑定到HTTP,并且端点位于"http://example.com/myService"。 总结来说...
- **自动代码生成**:开发工具可以解析WSDL文档,自动生成客户端代码,简化服务调用。 - **服务发现**:UDDI(统一描述、发现和集成)目录可以存储WSDL文档,帮助其他开发者查找和了解可用的服务。 ### 4. WSDL的...
通过以上对WSDL文档的解析,我们可以了解到WSDL文档是如何描述网络服务的。它不仅定义了服务的功能,还详细规定了数据类型、消息格式、绑定方式等细节。这对于实现跨平台、跨语言的服务调用至关重要。掌握WSDL文档的...
1. **获取WSDL文件**:找到对应Web服务的WSDL地址,这可能是一个URL或者本地文件路径。对于这个demo,我们假设已经有一个名为`CountryCityService.wsdl`的文件。 2. **运行wsdl2code工具**:使用命令行或集成开发...
webservice远程调用,返回String数据并生成xml文件到本地工程,在通过SAX解析器把数据解析出来。这是webservice应用的一个简单的例子。根据该例子的思想,可以实现很多功能了。例如把client工程的sayHello方法改为...
【描述】虽然描述部分为空,但我们可以推测文章可能围绕着如何理解和解析一个WSDL文件,以及它在实际开发中的作用。博客链接指向的iteye.com是一个知名的技术交流平台,文章可能在该平台上详细解释了UvcSoap.wsdl的...
Java调用以WSDL形式发布的Web服务是一种常见的实践,特别是在集成不同系统或平台时。...在实际项目中,通常还会使用到其他辅助工具,如WSDL解析器、代码生成器等,来帮助生成客户端存根类,从而简化调用流程。