首先说一下使用AXIS调用WSDL文件时需要的JAR包:
(1)axis 其中包括axis.jar、axis-ant.jar、commons-discovery-0.2.jar、commons-logging- 1.0.4.jar、jaxrpc.jar、log4j-1.2.8.jar、log4j.properties、saaj.jar、wsdl4j- 1.5.1.jar。http://www.apache.org/dyn/closer.cgi/ws/axis/
(2)javamail mail.jar。http://java.sun.com/products/javamail/
(3)jaf activation.jar。http://java.sun.com/javase/technologies/desktop/javabeans/jaf/downloads/index.html
一、WSDL文件内容
该实例采用的WSDL文件是使用AXIS创建的Web服务,功能是输入字符串,返回欢迎语句。对于远程(其他服务器)的Web服务的调用一直不成功,原本 想调用下DictionaryService.wsdl,可是运行时总是返回“ faultString: org.xml.sax.SAXException: Bad envelope tag: definitions”错误,实在无奈、、、Hello.jws的内容如下:
l:definitions targetNamespace="http://localhost:8080/axis/Hello.jws" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/axis/Hello.jws" xmlns:intf="http://localhost:8080/axis/Hello.jws" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!- WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT) --> <wsdl:message name="helloResponse"> <wsdl:part name="helloReturn" type="xsd:string" /> </wsdl:message> <wsdl:message name="helloRequest"> <wsdl:part name="name" type="xsd:string" /> </wsdl:message> <wsdl:portType name="Hello"> <wsdl:operation name="hello" parameterOrder="name"> <wsdl:input message="impl:helloRequest" name="helloRequest" /> <wsdl:output message="impl:helloResponse" name="helloResponse" /> </wsdl:operation> </wsdl:portType> <wsdl:binding name="HelloSoapBinding" type="impl:Hello"> <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="hello"> <wsdlsoap:operation soapAction="" /> <wsdl:input name="helloRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded" /> </wsdl:input> <wsdl:output name="helloResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/Hello.jws" use="encoded" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="HelloService"> <wsdl:port binding="impl:HelloSoapBinding" name="Hello"> <wsdlsoap:address location="http://localhost:8080/axis/Hello.jws" /> </wsdl:port> </wsdl:service> </wsdl:definitions>
二、调用Web服务
据说有三种方法,参见:http://blog.csdn.net/boy_wh520/archive/2007/05/09/1601756.aspx
http://www.ibm.com/developerworks/cn/webservices/ws-startaxis/index.html
这里只介绍一下第一种方法,代码如下:
二、调用Web服务 据说有三种方法,参见:http://blog.csdn.net/boy_wh520/archive/2007/05/09/1601756.aspx http://www.ibm.com/developerworks/cn/webservices/ws-startaxis/index.html 这里只介绍一下第一种方法,代码如下: package wsdl; import org.apache.axis.client.Call; import org.apache.axis.client.Service; public class CallService { public static void main(String[] args) { try { String endpoint = "http://localhost:8080/axis/Hello.jws"; //调用过程 Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setOperationName("hello");//WSDL里面描述的操作名称 call.addParameter("helloRequest", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);//操作的参数 call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型 call.setUseSOAPAction( true ); //给方法传递参数,并且调用方法 String temp = "Tom"; Object[] obj = new Object[]{temp}; String result = (String)call.invoke(obj); System.out.println("Result is : "+result); } catch (Exception e) { e.printStackTrace(); } } }
FeedBack:
# re: 使用AXIS调用WSDL描述的Web服务[未登录] 2008-09-07 22:15 | dong 你这个问题解决了没?我也遇到了,不知道改如何做,如果解决了发心信息到我邮箱吧,hsd6181000@163.com 回复 更多评论
# re: 使用AXIS调用WSDL描述的Web服务 2008-09-08 09:25 | 胖胖泡泡 问题已解决 参见 使用AXIS调用WSDL描述的Web服务(续) http://www.blogjava.net/mrcold/archive/2008/08/05/220121.html 回复 更多评论
# re: 使用AXIS调用WSDL描述的Web服务 2009-06-17 22:48 | xc @胖胖泡泡 这里是加?WSDL的目的 “?WSDL: Obtaining WSDL for deployed services When you make a service available using Axis, there is typically a unique URL associated with that service. For JWS files, that URL is simply the path to the JWS file itself. For non-JWS services, this is usually the URL "http://<host>/axis/services/<service-name>". If you access the service URL in a browser, you'll see a message indicating that the endpoint is an Axis service, and that you should usually access it using SOAP. However, if you tack on "?wsdl" to the end of the URL, Axis will automatically generate a service description for the deployed service, and return it as XML in your browser (try it!). The resulting description may be saved or used as input to proxy-generation, described next. You can give the WSDL-generation URL to your online partners, and they'll be able to use it to access your service with toolkits like .NET, SOAP::Lite, or any other software which supports using WSDL. You can also generate WSDL files from existing Java classes (see Java2WSDL: Building WSDL from Java). ”
http://www.blogjava.net/mrcold/archive/2009/06/17/220044.html#282932
相关推荐
本文将深入探讨如何使用MyEclipse集成开发环境来调用Axis工具,通过WSDL(Web Service Description Language)文件生成客户端代码。这个过程对于理解Web服务的生命周期和客户端开发流程至关重要。 首先,我们需要...
本文将详细讲解如何使用Axis2来发布Web服务以及如何生成客户端代码来调用这些服务。 首先,让我们了解发布Web服务的过程: 1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web...
在这个教程中,我们将学习如何使用Apache Axis2将一个简单的类转换为对外提供服务的Web服务,并生成WSDL文件,以及如何调用这些服务。 首先,我们需要了解提供的类`Person`,它包含`name`、`age`和`gender`三个属性...
"Java 调用 WSDL" Java 调用 WSDL 是一种常见的技术,它允许 Java 应用程序调用远程... Java 调用 WSDL 文件是通过解析 WSDL 文件来获取服务的接口和操作信息,然后使用 AXIS 库或 SOAP 库等来调用远程的 Web 服务。
总的来说,`Axis`工具,特别是`Axis2-1.7.4`版本,为我们提供了一种便捷的方式,将WS-DL定义的服务转换为可直接使用的Java代码,简化了Web服务的开发过程。通过理解生成的代码结构和使用方法,开发者可以更有效地与...
总之,`axis-1.4.jar`、`commons-discovery-0.2.jar`、`commons-logging-1.0.4.jar`、`jaxws-api-2.0.jar`和`wsdl4j-1.6.1.jar`这五个JAR文件构成了解析和处理WSDL文件的基础,它们共同为使用Axis开发Web服务提供了...
标题中的“axis生成wsdl的JAVA客户端服务接口”是指使用Apache Axis工具来从WSDL(Web Service Definition Language)文件生成Java客户端代码,以便与Web服务进行交互。Apache Axis是Apache软件基金会开发的一个开源...
要在Java中使用Axis2调用Web服务,首先需要在项目中添加Axis2的依赖库。这可以通过Maven或者直接下载jar包到项目的类路径中实现。然后,使用wsimport工具生成客户端 stubs,这些stubs将根据WSDL文件自动创建客户端...
总的来说,这篇文章或教程可能涵盖了如何使用Apache Axis从WSDL生成客户端代码,如何配置和使用这些代码来调用Web服务,以及如何处理调用过程中可能出现的问题。对于想要学习如何在Java环境中集成和使用Web服务的...
使用Axis WSDL2Java工具,我们可以将此WSDL文件转换为相应的Java代码,这样就可以在Java环境中创建一个可以调用这个Web服务的客户端,或者实现服务端的功能。 总结来说,Axis WSDL2Java是Apache Axis的一部分,它...
总的来说,`Axis`和`WSDL`在Java Web服务开发中扮演了核心角色,它们简化了服务的创建和调用过程。通过理解WSDL的结构和使用Axis工具,开发者可以高效地实现服务接口的定义和调用,从而促进不同系统间的交互和数据...
1. 使用Apache Axis调用远程Web服务 Apache Axis是一个流行的Java库,它允许开发者轻松地创建和消费Web服务。在上述示例中,我们看到如何使用Axis直接调用远程Web服务: ```java import org.apache.axis.client....
本教程将详细介绍如何使用Axis2快速发布自己的WSDL(Web Service Definition Language)服务。 首先,我们需要理解WSDL是什么。WSDL是一种XML格式的规范,用于定义Web服务接口,包括服务的位置、提供的操作以及如何...
标题中的“详解axis调用webservice实例”表明我们将探讨如何使用Apache Axis库来调用Web服务。Apache Axis是一个开源工具,它允许Java开发者创建、部署和使用Web服务。在这个实例中,我们会有机会看到实际的Java代码...
【Axis发布调用服务】是关于使用Apache Axis框架创建和部署Web服务的教程,适合初学者。Apache Axis是一个开源的Java库,遵循SOAP规范,使Java应用服务器具备提供Web服务的能力。 **一、Web服务简介** Web服务是一...
在使用Axis调用Web服务时,可能遇到网络连接问题、版本不兼容、WSDL解析错误等。解决这些问题通常需要检查网络配置、升级Axis版本、修复WSDL格式错误或者调整服务端的配置。 总之,使用Axis调用WebService服务端是...
本项目“WSDL使用axis2生成代码”着重讲解如何利用Apache Axis2这个强大的Web服务框架,从WSDL文件自动生成Java代码,从而简化开发流程。Apache Axis2是一个成熟的SOAP(Simple Object Access Protocol)处理引擎,...
总之,Axis提供的WSDL2Java工具极大地简化了Web服务的开发和调用过程,使得开发者能够专注于业务逻辑的实现,而无需过多关注底层通信细节。通过自动化地将WSDL转换为Java类,可以快速构建出功能完整、性能高效的Web...