`

转载:axis1.4学习笔记

 
阅读更多

1.下载axis1.4

下载地址:http://axis.apache.org/axis/ 选择Axis 1.4 Final,下载axis-bin-1_4.zip即可。

 

2.准备工作

把下载的axis中的jar包放到web项目中,至少需要如下包:

axis.jar
 
saaj.jar
 
wsdl4j-1.5.1.jar
 
jaxrpc.jar
 
commons-discovery-0.2.jar

web.xml中添加如下代码:

<servlet>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
</servlet-mapping>

 

 

3.编写服务端代码

web项目发布目录下(我的是WebContent目录)创建文件夹services,services文件夹下创建文件SayHello.jws,内容如下:

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

访问该服务是否正常 http://localhost:8080/proj1/services/SayHello.jws

访问后会自动创建对应的目录和class文件 WEB-INF/jwsClasses/services/SayHello.class

 

4.编写客户端代码

Service service = new Service();
Call call = (Call)service.createCall();
call.setOperationName(new QName(endPoint,"getName"));
call.setTargetEndpointAddress(new URL(endPoint));
String result = (String)call.invoke(new Object[]{"abcddd"});
System.out.println(result);

执行该代码打印内容为:hello,abcddd

 

 

 

-----------------------------------------------------------------------------------------------------------------

通过上篇文章,已经可以通过axis1.4发布服务以及调用服务了,不过上篇文章发布服务使用的方法不够灵活,这里介绍一种灵活的方式

一、以Stubs的方式发布服务


1.以这种方式发布还需要两个J2EE包

activation.jar
 
mail.jar



2.修改web.xml,我使用了struts2,和axis的配置会有冲突,为了避免冲突,对struts2的相关配置也做了对应修改,这里贴出完整web.xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
    <display-name>static</display-name>
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/struts/dojo/*</url-pattern>
    </filter-mapping>
 
    <servlet>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/servlet/AxisServlet</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>
 
    <welcome-file-list>
        <welcome-file>index.htm</welcome-file>
    </welcome-file-list>
</web-app>



3.编写服务类 com.site.webservice.MyService.java

package com.site.webservice;
 
public class MyService{
    public String getName(String name)
    {
        return "hi," + name;
    }
}



4.在项目WEB-INF目录下创建deploy.wsdd文件,内容为:

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
    <service name="MyService" provider="java:RPC">
        <parameter name="className" value="com.site.webservice.MyService" />
        <parameter name="allowedMethods" value="*" />
    </service>
</deployment>



5.在项目WEB-INF目录下创建deploy.bat文件,内容为:

set Axis_Lib=D:\workspace\proj1\WebContent\WEB-INF\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:8080/proj1/servlet/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd


dos下进入D:\workspace\proj1\WebContent\WEB-INF目录,执行deploy.bat,执行成功后会提示:

Processing file deploy.wsdd
<Admin>Done processing</Admin>


通过http://localhost:8080/proj1/services可以检查服务是否发布成功



6.编写客户端代码调用我们创建的服务:

Service service = new Service();
Call call = (Call)service.createCall();
call.setOperationName(new QName(endPoint,"getName"));
call.setTargetEndpointAddress(new URL(endPoint));
String result = (String)call.invoke(new Object[]{"abcd"});
System.out.println(result);


执行该代码打印内容为:hi,abcd



7.如果需要卸载MyService服务,在WEB-INF目录下创建undeploy.wsdd文件:

<undeployment xmlns="http://xml.apache.org/axis/wsdd/"
 <service name="MyService"/> 
</undeployment>


在WEB-INF目录下创建undeploy.bat文件:

set Axis_Lib=D:\workspace\proj1\WebContent\WEB-INF\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:8080/proj1/servlet/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% undeploy.wsdd


dos下进入D:\workspace\proj1\WebContent\WEB-INF目录,执行undeploy.bat,MyService服务就被卸载了


二、以Stubs的方式调用服务

 
1、在WEB-INF目录下创建client.bat文件:

set Axis_Lib=D:\workspace\proj1\WebContent\WEB-INF\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=D:\workspace\proj1\src
set Package=com.site.client
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% http://localhost:8080/proj1/services/MyService?wsdl


dos下进入D:\workspace\proj1\WebContent\WEB-INF目录,执行client.bat,会在com.site.client下自动生成如下文件类:

MyServiceSoapBindingStub.java

SayHello.java

SayHelloService.java

SayHelloServiceLocator.java


2、客户端调用

SayHelloService service = new SayHelloServiceLocator();
SayHello client = service.getMyService() ;
String result = client.getName("abcdefg");
System.out.println(result);
分享到:
评论

相关推荐

    axis1.4完整包下载

    标题“axis1.4完整包下载”表明我们关注的是Apache Axis的1.4版本,这是一个较早但仍然在某些环境中使用的版本。 在描述中提到,“包含Axis1.4的所有完整包”,这意味着下载包中包含了运行和开发SOAP Web服务所需的...

    axis1.4帮助文档

    Axis1.4是Apache软件基金会开发的一个开源SOAP(简单对象访问协议)库,主要用于构建和部署Web服务。...通过深入学习和实践,开发者可以充分利用Axis1.4的强大功能,创建高效、可靠的Web服务解决方案。

    axis1.4资源

    Axis1.4是Apache软件基金会开发的一个开源Web服务框架,主要用Java语言编写,它允许开发者将Java类作为Web服务发布,并能处理来自其他应用程序的Web服务请求。这个框架是基于早期的Axis版本,即Axis1.x系列,而Axis...

    axis1.4生成客户端

    Axis1.4是Apache软件基金会提供的一个开源工具,专门用于处理Web服务,特别是基于SOAP(Simple Object Access Protocol)的Web服务。本文将深入探讨如何使用Axis1.4生成客户端,以及与之相关的知识点。 1. **Web...

    web service axis1.4 jar

    Web服务Axis1.4是Apache组织开发的一个开源框架,专门用于构建和部署Web服务。它基于Java技术,允许开发者在Java应用程序中实现Service-Oriented Architecture (SOA)。Axis1.4版本是该框架的一个稳定发行版,包含了...

    apache axis1.4实例

    Apache Axis1.4是Apache软件基金会开发的一个开源Web服务框架,专门用于构建和部署Web服务。这个框架在2004年发布,虽然现在已经有些老旧,但因其稳定性、广泛支持和丰富的功能,仍然在很多项目中被使用。本文将深入...

    axis1.4带lib包java开发webservice客户端和服务端

    标题 "axis1.4带lib包java开发webservice客户端和服务端" 涉及到的是一个基于Java的Web服务开发工具包,Axis1.4,它包含必要的库文件(lib)来支持创建和消费Web服务。这个压缩包是为MyEclipse集成开发环境设计的,...

    axis_1.4 api文档

    【Axis 1.4 API 文档】是针对Web服务开发的重要参考资料,主要涵盖了 Axis 框架的1.4版本接口和功能。该框架是Apache软件基金会开发的一个开放源代码库,专门用于创建和部署Web服务。在描述中提到的问题,用户提到...

    springboot+axis1.4

    2. **集成 Axis1.4**:首先,你需要在Spring Boot的`pom.xml`文件中添加Axis1.4的依赖。这通常意味着你需要手动添加Axis的库,因为Spring Boot默认并不包含对Axis的支持。你需要找到Axis1.4的Maven坐标,并在`...

    webservice axis1.4服务实例

    Web服务(Web Service)是一种基于网络的、分布式的模块化组件,它提供了标准的方法...通过学习和掌握Axis1.4,你可以更好地理解和利用Web服务这一现代软件架构中的关键组成部分,实现不同系统间的互操作性和数据交换。

    webservice axis1.4 开发资料

    通过学习和实践相关的开发指南,掌握使用jar包,创建、发布和调用Web服务,以及理解其工作原理,可以有效地利用Axis1.4进行Web服务开发。然而,随着技术的演进,开发者也应关注更新的框架,以便利用更先进的功能和更...

    AXIS1.4webservice服务端和客户端例子

    AXIS1.4是Apache软件基金会开发的一个开源Java库,用于构建和使用Web服务。它提供了在Java平台上创建Web服务的工具和API,使得开发者能够快速实现SOAP(Simple Object Access Protocol)通信。在这个"AXIS1.4 ...

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

    总结来说,学习 Axis1.4 主要涉及以下几个关键点: 1. 下载并引入 Axis1.4 相关 JAR 包到项目中。 2. 配置 `web.xml` 文件以注册 Axis 相关的 Servlet 和监听器。 3. 创建服务端 Java 类,定义 Web 服务接口。 4. ...

    axis1.4和axis2相关jar文件

    了解并熟练使用Axis1.4和Axis2的相关jar文件,对于开发和维护Web服务至关重要。这不仅可以帮助开发者快速构建服务,还能确保与现有系统和其他Web服务的互操作性。在实际项目中,应根据具体需求选择适合的版本,同时...

    apache axis1.4 官网备份

    Apache Axis1.4是历史悠久的一款开源SOAP(Simple Object Access Protocol)服务器和客户端库,它主要用于构建Web服务。这款工具在2003年发布,是Apache软件基金会的一部分,旨在简化XML-RPC和SOAP的实现。由于其...

    axis1.4jar包以及WSDL和服务端代码互转方法

    Axis1.4是Apache组织提供的一款基于Java的Web服务框架,它允许开发者轻松地创建、发布和调用Web服务。本文将深入探讨如何使用Axis1.4.jar包以及Eclipse IDE来实现WSDL(Web Service Description Language)和服务端...

    在axis1.4中传递复杂类型数组参数(ArrayMapping)

    在 Axis1.4 中传递复杂类型数组参数,涉及到的是 Web 服务中的数据绑定和消息处理。Axis 是一个开源的 SOAP 库,它允许开发者创建、部署和使用 Web 服务。在处理复杂类型数组时,ArrayMapping 是 Axis 中的一个关键...

    axis1.4学习文档

    axis1.4 webservice个人学习笔记

    Axis_1.4文档

    **Axis 1.4 文档概述** Axis 是一个开源的 Web 服务开发工具,它允许开发者创建、部署和使用 Web 服务。版本 1.4 是 Axis 的一个重要里程碑,提供了许多改进和特性,以支持 Java 和 SOAP(简单对象访问协议)的 Web...

    AXIS1.4客户端调用

    AXIS1.4客户端调用是关于Web服务客户端开发的一个主题,主要涉及到使用Apache Axis1.4库来创建和调用SOAP(Simple Object Access Protocol)服务。Apache Axis1.4是一个开源工具,它允许开发者在Java环境中轻松地...

Global site tag (gtag.js) - Google Analytics