`
Janne
  • 浏览: 44107 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

使用AXIS调用WSDL描述的Web服务

阅读更多

首先说一下使用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的wsdl2java 通过wsdl生成客户端

    本文将深入探讨如何使用MyEclipse集成开发环境来调用Axis工具,通过WSDL(Web Service Description Language)文件生成客户端代码。这个过程对于理解Web服务的生命周期和客户端开发流程至关重要。 首先,我们需要...

    axis2发布webservice和调用axis2服务接口

    本文将详细讲解如何使用Axis2来发布Web服务以及如何生成客户端代码来调用这些服务。 首先,让我们了解发布Web服务的过程: 1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web...

    基于 Apache Axis2 将上述类的方法对外提供 Web 服务,生成 WSDL 文件,以及调用服务

    在这个教程中,我们将学习如何使用Apache Axis2将一个简单的类转换为对外提供服务的Web服务,并生成WSDL文件,以及如何调用这些服务。 首先,我们需要了解提供的类`Person`,它包含`name`、`age`和`gender`三个属性...

    Java调用WSDL

    "Java 调用 WSDL" Java 调用 WSDL 是一种常见的技术,它允许 Java 应用程序调用远程... Java 调用 WSDL 文件是通过解析 WSDL 文件来获取服务的接口和操作信息,然后使用 AXIS 库或 SOAP 库等来调用远程的 Web 服务。

    使用axis将wsdl文件转换为java代码

    总的来说,`Axis`工具,特别是`Axis2-1.7.4`版本,为我们提供了一种便捷的方式,将WS-DL定义的服务转换为可直接使用的Java代码,简化了Web服务的开发过程。通过理解生成的代码结构和使用方法,开发者可以更有效地与...

    axis解析wsdl所需jar

    总之,`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客户端服务接口

    标题中的“axis生成wsdl的JAVA客户端服务接口”是指使用Apache Axis工具来从WSDL(Web Service Definition Language)文件生成Java客户端代码,以便与Web服务进行交互。Apache Axis是Apache软件基金会开发的一个开源...

    Java+Axis2调用Web Services 网络接口

    要在Java中使用Axis2调用Web服务,首先需要在项目中添加Axis2的依赖库。这可以通过Maven或者直接下载jar包到项目的类路径中实现。然后,使用wsimport工具生成客户端 stubs,这些stubs将根据WSDL文件自动创建客户端...

    使用axis轻松调用Webservice

    总的来说,这篇文章或教程可能涵盖了如何使用Apache Axis从WSDL生成客户端代码,如何配置和使用这些代码来调用Web服务,以及如何处理调用过程中可能出现的问题。对于想要学习如何在Java环境中集成和使用Web服务的...

    axis WSDL2Java

    使用Axis WSDL2Java工具,我们可以将此WSDL文件转换为相应的Java代码,这样就可以在Java环境中创建一个可以调用这个Web服务的客户端,或者实现服务端的功能。 总结来说,Axis WSDL2Java是Apache Axis的一部分,它...

    axis以及wsdl的jar包

    总的来说,`Axis`和`WSDL`在Java Web服务开发中扮演了核心角色,它们简化了服务的创建和调用过程。通过理解WSDL的结构和使用Axis工具,开发者可以高效地实现服务接口的定义和调用,从而促进不同系统间的交互和数据...

    Java调用以WSDL形式发布的web service.doc

    1. 使用Apache Axis调用远程Web服务 Apache Axis是一个流行的Java库,它允许开发者轻松地创建和消费Web服务。在上述示例中,我们看到如何使用Axis直接调用远程Web服务: ```java import org.apache.axis.client....

    用Axis2快速发布自己的wsdl服务

    本教程将详细介绍如何使用Axis2快速发布自己的WSDL(Web Service Definition Language)服务。 首先,我们需要理解WSDL是什么。WSDL是一种XML格式的规范,用于定义Web服务接口,包括服务的位置、提供的操作以及如何...

    详解axis调用webservice实例

    标题中的“详解axis调用webservice实例”表明我们将探讨如何使用Apache Axis库来调用Web服务。Apache Axis是一个开源工具,它允许Java开发者创建、部署和使用Web服务。在这个实例中,我们会有机会看到实际的Java代码...

    Axis发布调用服务

    【Axis发布调用服务】是关于使用Apache Axis框架创建和部署Web服务的教程,适合初学者。Apache Axis是一个开源的Java库,遵循SOAP规范,使Java应用服务器具备提供Web服务的能力。 **一、Web服务简介** Web服务是一...

    使用axis调用WebService服务端

    在使用Axis调用Web服务时,可能遇到网络连接问题、版本不兼容、WSDL解析错误等。解决这些问题通常需要检查网络配置、升级Axis版本、修复WSDL格式错误或者调整服务端的配置。 总之,使用Axis调用WebService服务端是...

    Axis动态调用webService

    在使用 Axis 调用 Web 服务之前,需要将以下 JAR 包添加到项目的类路径中: 1. xmlsec-1.3.0.jar 2. axis.jar 3. axis-ant.jar 4. axis-schema-1.3.jar 5. axis-wsdl4j-1.5.1.jar 6. commons-discovery-0.2.jar 7. ...

    WSDL使用axis2生成代码项目

    本项目“WSDL使用axis2生成代码”着重讲解如何利用Apache Axis2这个强大的Web服务框架,从WSDL文件自动生成Java代码,从而简化开发流程。Apache Axis2是一个成熟的SOAP(Simple Object Access Protocol)处理引擎,...

Global site tag (gtag.js) - Google Analytics