`

axis第一个例子

阅读更多
首先安装axis和tomcat6,将axis安装目录下webapps下的axis拷贝到tomcat的webapps目录中去,并在axis\web-info\lib目录下拷贝可选的jar包
然后编写helloclient代码,然后将其拷贝到D:\Tomcat6\webapps\axis下,并命名为HelloClient.jws。

public class HelloClient { public String getName(String name) { return "hello "+name; } } 

启动tomcat,在浏览器输入:http://localhost:8080/axis/HelloClient.jws
显示以下结果:
There is a Web Service here
Click to see the WSDL
点击,可查看wsdl文件
或者输入http://localhost:8080/axis/HelloClient.jws?wsdl
  <?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions targetNamespace="http://localhost:8080/axis/HelloClient.jws" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/axis/HelloClient.jws" xmlns:intf="http://localhost:8080/axis/HelloClient.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="getNameRequest">
  <wsdl:part name="name" type="xsd:string" /> 
  </wsdl:message>
- <wsdl:message name="getNameResponse">
  <wsdl:part name="getNameReturn" type="xsd:string" /> 
  </wsdl:message>
- <wsdl:portType name="HelloClient">
- <wsdl:operation name="getName" parameterOrder="name">
  <wsdl:input message="impl:getNameRequest" name="getNameRequest" /> 
  <wsdl:output message="impl:getNameResponse" name="getNameResponse" /> 
  </wsdl:operation>
  </wsdl:portType>
- <wsdl:binding name="HelloClientSoapBinding" type="impl:HelloClient">
  <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> 
- <wsdl:operation name="getName">
  <wsdlsoap:operation soapAction="" /> 
- <wsdl:input name="getNameRequest">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded" /> 
  </wsdl:input>
- <wsdl:output name="getNameResponse">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/HelloClient.jws" use="encoded" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:service name="HelloClientService">
- <wsdl:port binding="impl:HelloClientSoapBinding" name="HelloClient">
  <wsdlsoap:address location="http://localhost:8080/axis/HelloClient.jws" /> 
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>

wsdl文件的剖析:
<definitions>wsdl的根元素,定义web服务的名称,并声明wsdl其余部分使用的命名空间。
<types>:定义web服务于服务用户之间交换的信息的所有数据类型。XML schema是默认的类型系统。
message:表示web服务于服务用户之间传递的数据的逻辑定义,描述单向消息,包含0或多个消息元素part。part主要指请求参数或响应返回值。
portType:通过组合message定义的各种请求和响应消息,定义了web服务支持的各项操作的抽象定义。
binding:指定portType定义的操作和消息的具体协议和数据格式。
port:指定与web服务的绑定地址。
service:聚集一组相关的port元素
当输入http://localhost:8080/axis/HelloClient.jws?method=getName时,显示结果:
  <?xml version="1.0" encoding="UTF-8" ?> 
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <soapenv:Body>
- <getNameResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <getNameReturn xsi:type="xsd:string">hello null</getNameReturn> 
  </getNameResponse>
  </soapenv:Body>
  </soapenv:Envelope>

在浏览器中输入http://localhost:8080/axis/HelloClient.jws?method=getName&parameter=luokaiyun时,显示的xml结果如下:
<?xml version="1.0" encoding="UTF-8" ?> 
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <soapenv:Body>
- <getNameResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <getNameReturn xsi:type="xsd:string">hello luokaiyun</getNameReturn> 
  </getNameResponse>
  </soapenv:Body>
  </soapenv:Envelope>

在axis的web-inf目录下还有一个server-config.wsdd文件,服务部署描述,该文件一开始没有,可以自行添加如下:
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <globalConfiguration>
  <parameter name="sendMultiRefs" value="true"/>
  <parameter name="disablePrettyXML" value="true"/>
  <parameter name="adminPassword" value="admin"/>
  <parameter name="attachments.Directory" value="D:\Tomcat6\webapps\axis\WEB-INF\attachments"/>
  <parameter name="dotNetSoapEncFix" value="true"/>
  <parameter name="enableNamespacePrefixOptimization" value="false"/>
  <parameter name="sendXMLDeclaration" value="true"/>
  <parameter name="sendXsiTypes" value="true"/>
  <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
  <requestFlow>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="session"/>
   </handler>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="request"/>
    <parameter name="extension" value=".jwr"/>
   </handler>
  </requestFlow>
 </globalConfiguration>
 <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
 <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
 <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
 <service name="AdminService" provider="java:MSG">
  <parameter name="allowedMethods" value="AdminService"/>
  <parameter name="enableRemoteAdmin" value="false"/>
  <parameter name="className" value="org.apache.axis.utils.Admin"/>
  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
 </service>
 <service name="Version" provider="java:RPC">
  <parameter name="allowedMethods" value="getVersion"/>
  <parameter name="className" value="org.apache.axis.Version"/>
 </service>
 <service name="HelloWorld" provider="java:RPC">
  <parameter name="allowedMethods" value="sayHello"/>
  <parameter name="className" value="HelloWorld"/>
 </service>
 <transport name="http">
  <requestFlow>
   <handler type="URLMapper"/>
   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
  </requestFlow>
  <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
  <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
  <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
  <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
 </transport>
 <transport name="local">
  <responseFlow>
   <handler type="LocalResponder"/>
  </responseFlow>
 </transport>
</deployment>

所有要部署的web服务在此文件中都有描述,有了这个文件,就可以在浏览器中输入http://localhost:8080/axis/servlet/AxisServlet,以查看可用的服务
本例子显示服务如下:
And now... Some Services
AdminService (wsdl)
AdminService
Version (wsdl)
getVersion
HelloWorld (wsdl)
sayHello

部署完服务后,可直接在浏览器中输入如:http://localhost:8080/axis/services/HelloWorld来访问helloworld服务,结果:
HelloWorld
Hi there, this is an AXIS service!

Perhaps there will be a form for invoking the service here...
分享到:
评论

相关推荐

    Axis2介绍和例子

    在第一个实例中,将展示如何使用Plain Old Java Object(POJO)无配置地创建Web服务,这体现了Axis2的易用性和灵活性。此外,Axis2不仅支持SOAP 1.1和1.2,还集成了RESTful Web服务和Spring、JSON等流行技术,使得...

    Axis搭建一个简单的web工程

    通过这个例子,我们了解了如何使用Axis构建一个简单的Web服务,包括服务端接口的定义、配置和服务的发布,以及客户端如何调用这些服务。这个过程展示了Axis的强大之处,即简化了Web服务的开发和部署,同时也提供了跨...

    AXIS2例子

    AXIS2是基于Apache Axis的第二代版本,它提供了一个高效、灵活且可扩展的平台来实现服务导向架构(SOA)。AXIS2主要由以下几个组件组成: 1. **服务描述**:AXIS2使用WSDL(Web服务描述语言)来定义服务接口、操作...

    Axis2 例子

    Axis2 是一个基于 Apache SOAP(Simple Object Access Protocol)实现的Web服务框架,它提供了一种高效、灵活且可扩展的方式来处理Web服务。本篇文章将深入探讨Axis2的基本概念、配置过程以及如何通过示例进行学习。...

    axis1.1发布webservice服务

    发布Web服务的第一步是创建服务接口和实现。在Java中,我们可以定义一个普通的Java接口,然后创建其实现类。例如,我们可以创建一个名为`HelloWorldService`的接口,包含一个`sayHello`方法: ```java public ...

    axis2各种教程.rar

    Axis2是Apache软件基金会开发的一个开放源代码Web服务引擎,它是基于Java平台的,专门用于构建和部署Web服务。下面将详细阐述Axis2的相关知识点: 1. **什么是Axis2**: Axis2是第二代Apache Axis,它是处理SOAP...

    axis1.4学习示例(详细步骤说明)

    Axis1.4 是一个开源的 SOAP(简单对象访问协议)服务框架,用于构建和部署 Web 服务。这个框架允许开发者将 Java 类转换为 Web 服务,或者调用其他 Web 服务。在本示例中,我们将详细探讨如何使用 Axis1.4 创建并...

    MyEclipse 8.5 安装 axis2 插件

    1. **下载插件**:首先,你需要访问Apache官方网站或第三方资源网站下载适用于MyEclipse 8.5的Axis2插件。通常,插件会以`.zip`或`.jar`格式提供。在这个例子中,压缩包文件名为“eclipse axis2 plugin”,这可能是...

    axis1.4.1常用

    Axis总体上是一个SOAP引擎,但又不仅仅是个引擎,它还是: 1)是一个简单的独立的服务器 2)是一个可插入到servlet引擎(如Tomcat)中的服务 3)可扩展的支持WSDL 4)能根据WSDL产生JAVA文件/类 5)包括一些例子程序 6)包括一...

    numpy库与pandas库axis=0,axis= 1轴的用法详解

    - **axis=0**:表示沿着第一维度(通常是垂直方向)进行操作。这意味着如果数组是二维的,则会沿着每一列进行操作。 - **axis=1**:表示沿着第二维度(通常是水平方向)进行操作。这意味着如果数组是二维的,则会...

    axis-bin-1_4.zip

    提供一个简洁的传输抽象框架。其核心引擎完全于传输方式独立。从而使基于何种协议传输的选择更加灵活。 支持WSDL。包括导出WSDL和客户代理生成等。 在目前发行1.1版本中有什么东西? SOAP1.1/1.2引擎。 灵活的配置和...

    WebService大讲堂之Axis2及其它web service资料

    本讲堂重点探讨的是 Axis2,一个强大的Web Service框架,它是Apache软件基金会开发的第二代Web Service引擎。 一、什么是Axis2? Axis2是Apache Axis的升级版,它提供了更高效、更灵活的服务架构。Axis2基于模块化...

    通向架构师的道路(第十一天)之Axis2 Web Service(二).docx

    在第一天的学习中,我们已经了解到如何生成和部署Axis2的Web服务,以及四种不同类型的客户端调用方式:传统式、非阻塞式、双工模式和双工非阻塞。 2. **服务部署描述**: 在Axis2中,服务部署描述是通过XML文件来...

    Python中axis=0和axis=1的理解

    \quad在看数据分析的时候,发现一个问题,之前对于axis的理解是0行1列。先看下面两个例子吧。 \quad从上述代码中,我们可以看到,data....\quad所以问题当中第一个列子 df.mean(axis=1)代表沿着列水平方向计算均值

    第一个webservice例子.pdf

    本教程将通过一个简单的实例介绍如何使用Apache Axis框架创建并部署第一个Web服务。 1. **获取Axis框架及依赖** Apache Axis是Apache软件基金会开发的一个开源工具包,主要用于创建和部署Web服务。访问`...

    基于axis的webservice项目示例源码

    基于apache第三方架包axis编写的一套简单webservice示例项目(含源码),该项目基于myeclipse环境部署,可以直接导入myeclipse部署到tomcat等服务器运行。

    eclipse axis2插件(2)

    开发者可以通过编写插件来扩展Eclipse的功能,Axis2插件就是这样一个例子,它使得Eclipse能够更好地支持Axis2相关的开发工作。 3. **Axis2 Service Archiver**:在“Axis2_Service_Archiver_1.3.0”中,"Archiver...

    axis2 教程

    Axis2是第二代的Web服务引擎,它在Axis1的基础上进行了优化,提供了更高效的处理性能和更好的模块化设计。Axis2的主要功能包括Web服务的发布、调用、部署和管理,支持SOAP 1.1和1.2协议,以及WS-I Basic Profile ...

    Axis2_入门.doc

    Apache Axis2 是一个高度可扩展且模块化的Web服务引擎,它是Apache SOAP(Simple Object Access Protocol)项目的第二代产品。这个入门文档将引导我们通过一系列步骤创建并部署一个基本的StockQuoteService,它允许...

Global site tag (gtag.js) - Google Analytics