在javaEE6的bin文件夹时,有一个wsimport.exe,这个工具在5.0之前的版本里是没有的,这个工具依据wsdl文件生成相应的类文件,然后用这些类文件,就可以像调用本地的类一样调用WebService提供的方法了
The wsimport
tool generates JAX-WS portable artifacts, such as:
- Service Endpoint Interface (SEI)
- Service
- Exception class mapped from wsdl:fault (if any)
- Async Reponse Bean derived from response wsdl:message (if any)
- JAXB generated value types (mapped java classes from schema types)
These artifacts can be packaged in a WAR file with the WSDL and schema documents along with the endpoint implementation to be deployed. The generated Service class can be used to invoke the Web Service endpoint.
wsimport [options] <wsdl>
Option
Description
-d <directory>
|
Specify where to place generated output files
|
-b <path>
|
Specify external JAX-WS or JAXB binding files (Each <file> must have its own -b )
|
-catalog
|
Specify catalog file to resolve external entity references, it supports TR9401, XCatalog, and OASIS XML Catalog format. Please read the XML Entity and URI Resolvers document or see wsimport_catalog sample. |
-extension
|
allow vendor extensions (functionality not specified by the specification). Use of extensions may result in applications that are not portable or may not interoperate with other implementations
|
-help
|
Display help
|
-httpproxy:<host>:<port>
|
Specify an HTTP proxy server (port defaults to 8080)
|
-keep
|
Keep generated files
|
-p |
Specifying a target package via this command-line option, overrides any wsdl and schema binding customization for package name and the default package name algorithm defined in the specification |
-s <directory>
|
Specify where to place generated source files
|
-verbose
|
Output messages about what the compiler is doing
|
-version
|
Print version information
|
-wsdllocation <location>
|
@WebService.wsdlLocation and @WebServiceClient.wsdlLocation value
|
首先,须保证你的jdk为6.0以上版本,可以在command line下试运行这个命令
c:\test> wsimport
假设我们有下面的wsdl文件
http://localhost:9080/WebService/TestService/TestService.wsdl
我们要把生成的代码放到c:/test/generate目录下,那么我们运行以下命令即可
c:\test> wsimport -s generate http://localhost:9080/WebService/TestService/TestService.wsdl
然后,你就会看到在c:\test\generate目录下生成了一些java代码文件,wsimport就是如此简单
假如我们要调用的WebService就是之前举例提到的TestService,它只有下面这样一个方法
public String test(String name) throws SOAPException
{
if (name == null)
{
throw new SOAPException("name can't be null!");
}
return "hello " + name;
}
用wsimport工具,我们可以得到如下代码文件
generate
|--com
|--company
|--ObjectFactory.java
|--SOAPException.java
|--SOAPException_Exception.java
|--Test.java
|--TestResponse.java
|--TestService.java
|--TestService_Service.java
|--package-info.java
把它们编译,然后写下面这样一个application去测试
public static void main(String[] args)
{
TestService_Service serviceFactory = new TestService_Service();
TestService service = serviceFactory.getTestServicePort();
try
{
System.out.println(service.test(null));
}
catch (SOAPException_Exception ex)
{
System.out.println(ex.getMessage());
}
}
运行它,屏幕就会输出
name can't be null
因为我们之前传了一个null值进去嘛,其实这也是为了测试SOAPException是否正常运行,如果你传个正确的字符串进去,webservice就可以正常运行,如System.out.println(service.test("javaeye"));,屏幕上就会显示,
Hello javaeye!
顺便提一下WebService的异常处理,所有WebService的异常都必须用SOAPException抛出,它是java.xml.soap包中的一个类 (本人试过其它一些Exception,都不能被正常捕捉,只有SOAPException可以正常工作,具体原因不明,如果有哪个人清楚这一点,请评论告之,谢谢)
分享到:
相关推荐
本教程将重点讲解如何使用C#来调用WebService以及如何进行WebService的开发,通过理解并实践其中的实例,开发者可以掌握这项关键技能。 首先,WebService是一种基于XML的开放标准,它允许不同系统之间的数据交换。...
通过映射实现动态调用webService,写个url,方法名就直接调用,不需要在添加引用了,好处大家都明白 不过映射的方法(类里面)虽然能用 但是是过时的。 在vs2008下打开此工程可以看到提示的 大家有兴趣自己改吧 反正也...
标题中的“详解axis调用webservice实例”表明我们将探讨如何使用Apache Axis库来调用Web服务。Apache Axis是一个开源工具,它允许Java开发者创建、部署和使用Web服务。在这个实例中,我们会有机会看到实际的Java代码...
简单的理解就是:webservice 就是放在服务器上的函数,所有人都可以调用,然后返回信息。 比如google就有一个web service ,你调用它就可以很容易的做一个搜索网站。 就像调用函数一样,传入若干参数(比如关键字、...
JS调用webService实例,其中有详细使用文档! myEclipse部署上客户端和服务器端即可直接测试! 使用技术: JS,webService,JS调用webService,xfire,数字证书
本压缩包包含的三个文档详细讲解了如何利用Ajax和JavaScript来调用WebService,这对于理解这两种技术的集成至关重要。 首先,让我们了解一下Ajax。Ajax是一种在不刷新整个网页的情况下,能够更新部分网页内容的技术...
本实例将重点讲解如何利用AJAX进行异步调用WebService,为用户提供无缝的交互体验。 一、AJAX基础 1. AJAX的核心是XMLHttpRequest对象,它提供了与服务器通信的能力,可以在后台与服务器进行数据交换。 2. AJAX通过...
"Delphi调用WebService的实例(非常经典)" 在 Delphi 中调用 WebService 是一种非常经典的实例。下面我们将详细介绍 Delphi 调用 WebService 的相关知识点。 首先, Delphi 调用 WebService 需要了解基本概念。...
C#调用WebService实例和开发,对于初学者来说,在vs2012环境中,大家有可能不知道Web References文件夹是如何来的,它是通过右击项目,选择其中的”添加服务引用“。
2. **编写服务实现**:在新项目中创建一个Java类,实现你想要暴露的服务逻辑。 3. **生成WSDL**:使用JAX-WS(Java API for XML Web Services)工具,如CXF或Metro,通过Java类自动生成WSDL文件。这将描述你的Web...
要调用webservice需完成如下两步: (1)写一个调用webservice的类webservice(代码中有两个,一个是使用NSURLConnection写的类,还有一个是ASIHttpRequest写的webservice调用类) a.同步调用 b.异步调用 c.返回数据...
综上所述,"Delphi调用Java WebService实例"主要是关于在Delphi环境中如何利用各种工具和组件,通过SOAP协议调用并处理Java WebService的响应。具体实现需要理解WSDL,生成Delphi客户端代理,以及正确地发送请求和...
Java调用WebService是一种常见的在分布式系统中实现服务交互的方式,主要应用于不同系统间的数据共享和功能集成。在Java中,有多种库可以帮助我们完成这项任务,其中之一就是Apache Axis2。本篇文章将详细介绍如何...
Web服务(Web Service)是一种基于互联网的、使用标准XML(Extensible Markup Language)进行通信的软件服务,允许...通过实践"webservice_client"这个实例,你可以深入理解这些概念并掌握Web Service调用的具体步骤。
JavaScript调用WebService是一种常见的在客户端与服务器之间进行数据交互的方式,尤其在Web应用程序中,它允许JavaScript代码直接访问Web服务提供的功能。以下是对这个实例的详细解析和相关知识点的总结: 1. ...
标题中的“axis调用webservice实例”涉及到的是在Java开发中使用Apache Axis库来调用Web服务的过程。Apache Axis是一个开放源代码的SOAP栈,它允许开发者创建和部署Web服务,同时也提供了客户端工具来调用这些服务。...
### Java调用WebService实例解析与知识点详解 #### 核心概念与原理 在现代软件开发中,服务端之间以及客户端和服务端之间的通信是至关重要的。Web Service作为一种标准的、跨平台的服务实现方式,允许不同语言编写...
本工具类主要用于简化这个过程,确保开发者能够高效、可靠地调用WebService。下面我们将详细探讨Java调用WebService的相关知识点。 1. **WebService概念**: WebService是一种基于互联网的、平台无关的应用程序...
在IT领域,Visual C++ 6.0(简称VC6)是一款经典的编程工具,用于开发Windows平台的应用程序。尽管现在有更新的版本如VS2019等,但VC6仍然在某些场合被广泛使用。本篇文章将深入探讨如何在VC6环境中调用Web Service...
本文将详细介绍 Oracle 调用 Webservice 的实现过程,包括 Webservice 的基本概念、 Java 编写简单的 WebService 实例、Oracle 服务器端配置、加载 JAR 包、测试调用 PHP Webservice 和 Java Webservice 等内容。...