首先安装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¶meter=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...
分享到:
相关推荐
在第一个实例中,将展示如何使用Plain Old Java Object(POJO)无配置地创建Web服务,这体现了Axis2的易用性和灵活性。此外,Axis2不仅支持SOAP 1.1和1.2,还集成了RESTful Web服务和Spring、JSON等流行技术,使得...
通过这个例子,我们了解了如何使用Axis构建一个简单的Web服务,包括服务端接口的定义、配置和服务的发布,以及客户端如何调用这些服务。这个过程展示了Axis的强大之处,即简化了Web服务的开发和部署,同时也提供了跨...
AXIS2是基于Apache Axis的第二代版本,它提供了一个高效、灵活且可扩展的平台来实现服务导向架构(SOA)。AXIS2主要由以下几个组件组成: 1. **服务描述**:AXIS2使用WSDL(Web服务描述语言)来定义服务接口、操作...
Axis2 是一个基于 Apache SOAP(Simple Object Access Protocol)实现的Web服务框架,它提供了一种高效、灵活且可扩展的方式来处理Web服务。本篇文章将深入探讨Axis2的基本概念、配置过程以及如何通过示例进行学习。...
发布Web服务的第一步是创建服务接口和实现。在Java中,我们可以定义一个普通的Java接口,然后创建其实现类。例如,我们可以创建一个名为`HelloWorldService`的接口,包含一个`sayHello`方法: ```java public ...
Axis2是Apache软件基金会开发的一个开放源代码Web服务引擎,它是基于Java平台的,专门用于构建和部署Web服务。下面将详细阐述Axis2的相关知识点: 1. **什么是Axis2**: Axis2是第二代Apache Axis,它是处理SOAP...
Axis1.4 是一个开源的 SOAP(简单对象访问协议)服务框架,用于构建和部署 Web 服务。这个框架允许开发者将 Java 类转换为 Web 服务,或者调用其他 Web 服务。在本示例中,我们将详细探讨如何使用 Axis1.4 创建并...
1. **下载插件**:首先,你需要访问Apache官方网站或第三方资源网站下载适用于MyEclipse 8.5的Axis2插件。通常,插件会以`.zip`或`.jar`格式提供。在这个例子中,压缩包文件名为“eclipse axis2 plugin”,这可能是...
Axis总体上是一个SOAP引擎,但又不仅仅是个引擎,它还是: 1)是一个简单的独立的服务器 2)是一个可插入到servlet引擎(如Tomcat)中的服务 3)可扩展的支持WSDL 4)能根据WSDL产生JAVA文件/类 5)包括一些例子程序 6)包括一...
- **axis=0**:表示沿着第一维度(通常是垂直方向)进行操作。这意味着如果数组是二维的,则会沿着每一列进行操作。 - **axis=1**:表示沿着第二维度(通常是水平方向)进行操作。这意味着如果数组是二维的,则会...
提供一个简洁的传输抽象框架。其核心引擎完全于传输方式独立。从而使基于何种协议传输的选择更加灵活。 支持WSDL。包括导出WSDL和客户代理生成等。 在目前发行1.1版本中有什么东西? SOAP1.1/1.2引擎。 灵活的配置和...
本讲堂重点探讨的是 Axis2,一个强大的Web Service框架,它是Apache软件基金会开发的第二代Web Service引擎。 一、什么是Axis2? Axis2是Apache Axis的升级版,它提供了更高效、更灵活的服务架构。Axis2基于模块化...
在第一天的学习中,我们已经了解到如何生成和部署Axis2的Web服务,以及四种不同类型的客户端调用方式:传统式、非阻塞式、双工模式和双工非阻塞。 2. **服务部署描述**: 在Axis2中,服务部署描述是通过XML文件来...
\quad在看数据分析的时候,发现一个问题,之前对于axis的理解是0行1列。先看下面两个例子吧。 \quad从上述代码中,我们可以看到,data....\quad所以问题当中第一个列子 df.mean(axis=1)代表沿着列水平方向计算均值
本教程将通过一个简单的实例介绍如何使用Apache Axis框架创建并部署第一个Web服务。 1. **获取Axis框架及依赖** Apache Axis是Apache软件基金会开发的一个开源工具包,主要用于创建和部署Web服务。访问`...
基于apache第三方架包axis编写的一套简单webservice示例项目(含源码),该项目基于myeclipse环境部署,可以直接导入myeclipse部署到tomcat等服务器运行。
开发者可以通过编写插件来扩展Eclipse的功能,Axis2插件就是这样一个例子,它使得Eclipse能够更好地支持Axis2相关的开发工作。 3. **Axis2 Service Archiver**:在“Axis2_Service_Archiver_1.3.0”中,"Archiver...
Axis2是第二代的Web服务引擎,它在Axis1的基础上进行了优化,提供了更高效的处理性能和更好的模块化设计。Axis2的主要功能包括Web服务的发布、调用、部署和管理,支持SOAP 1.1和1.2协议,以及WS-I Basic Profile ...
Apache Axis2 是一个高度可扩展且模块化的Web服务引擎,它是Apache SOAP(Simple Object Access Protocol)项目的第二代产品。这个入门文档将引导我们通过一系列步骤创建并部署一个基本的StockQuoteService,它允许...