`

Axis 开发WebService

阅读更多

Axis 开发WebService

Axis 开发WebService
2008-01-24 10:23

       最近一直在集成基础事业部开发的一个报表工具,昨天做登录的时候,需要用到webservice 。我们部门用的是Axis2 ,而报表这边用的是Axis。 没用过一,又不想把二的报都导入到报表中, 就试了试用一。看了看文档,生成客户端代码很容易就完成了, 但是发现和二生成的不一样,最后没有耐心了,也没有继续研究下去,还是用了Axis2

      下文是我在学习Axis的时候,看到的一个比较好的帖子,贴上来和大家分享,共同学习进步。


一、环境准备
1 、从axis网站下载相关内容:http: //apache.justdn.org/ws/axis/1_3/
2 、解压后,参考webapps\axis,为了使你的web应用axis开发web service,需要做的事情如下:
     a. 将webapps\axis\WEB- INF\lib下的相关jar包拷贝到你自己web应用的lib目录下。另外需要activation.jar、 mail.jar两个支持包。
     b.修改web.xml,加载axis的servlet。
< listener>
< listener- class > org.apache.axis.transport.http.AxisHTTPSessionListener< / listener- class >
< / listener>

< servlet>
< servlet- name> AxisServlet< / servlet- name>
< display- name> Apache- Axis Servlet< / display- 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> * .jws< / url- pattern>
< / servlet- mapping>

< servlet- mapping>
< servlet- name> AxisServlet< / servlet- name>
< url- pattern> / services/* < / url- pattern>
< / servlet- mapping>

二、开发service
服务器端的service为普通的java类:com.hnisi.axis.BookOrder

public class BookOrder {
public String getName(String name) {
System.out.println("start execute ..." );
return "book name: " + name;
}

public Book setPrice(Book book){
book.setPrice(10 );
return book;
}
}

com.hnisi.axis.Book为简单的值对象,包含两个属性name,price。

三、发布service
1 、手工修改server- config.wsdd文件(在已有server- config.wsdd文件的情况下)
添加service

< service name= "BookOrder" provider= "java:RPC" >
< parameter name= "allowedMethods" value= "*" / >
< parameter name= "className" value= "com.hnisi.axis.BookOrder" / >
< / service>

allowedMethods是调用的服务的方法,如果有多个方法的话可以用空格分开,当用* 的时候表示全部。

2 、写deploy.wsdd文件,使用axis提供的AdminClient工具,自动生成server- config.wsdd。deploy.wsdd文件如下:

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

deploy.wsdd文件位于/ web- inf目录下。
使用AdminClient发布该service,在/ web- inf目录下新建deploy.bat文件:

set LIB_HOME= ./ lib
set CPATH= .;% LIB_HOME% \axis.jar;% LIB_HOME% \jaxrpc.jar;% LIB_HOME% \commons- logging- 1 .0 .2 .jar;% LIB_HOME% \commons- discovery- 0 .2 .jar;% LIB_HOME% \saaj.jar;% LIB_HOME% \activation.jar;% LIB_HOME% \mail.jar
java - classpath % CPATH% org.apache.axis.client.AdminClient - lhttp: //localhost:8080/test/services/AdminService deploy.wsdd
pause

执行deploy.bat,会生成server- config.wsdd文件。成功生成的几个必要条件:
a. axis相关jar包存在于/ web- inf/ lib下
b. 你的tomcat必须启动,同时留意deploy.bat文件的第三行"http://localhost:8080/test/services/AdminService" ,根据具体情况修改。
否则会报"java.net.ConnectException: Connection refused: connect" 异常。

综合上述,在第一次发布service的情况下,需用方式2 生成server- config.wsdd,后续开发过程中,使用方式1 直接修改server- config.wsdd文件。

发布后,执行http: //localhost:8080/test/services,能看到当前web应用的所有web service.
http: //localhost:8080/test/services/BookOrder?wsdl 为ServerService对应WSDL.
还可以通过IE浏览器直接调用服务,方法是在服务URL后加"method=xxx" ,其中xxx是要调用的方法名称:
http: //localhost:8080/test/services/BookOrder?method=getName&name=HH

四、调用service
有两种方式可以调用service
1 、使用org.apache.axis.client.Call直接调用

package com.hnisi.axis;

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/test/services/BookOrder" ;
Service service = new Service();
Call call = (Call) service.createCall();

call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName("getName" );

String ret = (String) call.invoke(new Object[] {"yehailong" });
System.out.println("return value is " + obj[0 ]);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

2 、根据wsdl生成客户端java代码
/ web- inf目录下新建make.bat文件:

set LIB_HOME= .

分享到:
评论

相关推荐

    axis 开发webservice经典入门例子

    标题 "axis 开发webservice经典入门例子" 指向的是使用Apache Axis工具来创建和使用Web服务的基本教程。Apache Axis是开源的Java框架,它允许开发者轻松地在Java应用程序中构建和部署Web服务。本教程可能是为了帮助...

    axis开发webservice客户端

    标题中的“axis开发webservice客户端”指的是使用Apache Axis框架创建并使用Web服务客户端的过程。Apache Axis是Java平台上的一个开源工具,它简化了SOAP(Simple Object Access Protocol)Web服务的开发,包括...

    java使用axis开发webservice服务端和客户端简单例子

    访问地址: http://127.0.0.1:8080/axis/services

    Axis开发WebService 指南

    本文将深入探讨如何利用Axis开发WebService,以及相关的技术要点。 首先,了解WebService的基础概念是至关重要的。WebService是一种基于开放标准(如XML、WSDL和SOAP)的互联网应用程序,它能够跨平台、跨语言地...

    eclipse+AXIS开发webservice.pdf

    【标题】: 使用Eclipse和AXIS开发WebService的步骤详解 【描述】: 本文档详细介绍了如何利用Eclipse集成开发环境和AXIS框架来创建并发布WebService。 【标签】: Eclipse 【部分内容】: 在开发基于Java的...

    Axis开发WebService实例.pdf

    ### Axis开发WebService实例知识点解析 #### 一、Axis概述与安装配置 - **Apache Axis简介**:Apache Axis是Apache组织提供的一个开源项目,用于在Java环境中实现WebService技术规范。它支持SOAP协议,并提供了...

    用eclipse+xdoclet+axis开发WebService.pdf

    在使用Eclipse集成开发环境配合XDoclet和Axis开发WebService的背景下,本文将详细介绍相关的知识点和步骤。首先需要了解的是,WebService是一种可让应用程序通过网络(尤其是互联网)进行通信的接口和协议。它通常...

    SpringBoot开发WebService之Axis示例

    在本文中,我们将深入探讨如何使用SpringBoot框架开发基于Axis的Web服务。SpringBoot以其便捷的启动和配置方式,已经成为Java开发中的首选框架之一。而 Axis 是一个流行的Apache项目,用于创建和部署Web服务,它提供...

    使用axis开发webservice使用的jar包

    本篇文章将深入探讨如何使用Axis开发Web服务,并详细解释相关jar包的作用。 首先,让我们了解Web服务的基本概念。Web服务是一种通过互联网进行通信的应用程序,遵循W3C制定的SOAP(Simple Object Access Protocol)...

    eclipse+AXIS开发webservice.doc

    本文档主要介绍了如何使用Eclipse和AXIS框架开发和发布Web服务,以及进行客户端测试。以下是详细步骤和关键知识点: 1. **Eclipse插件安装**: - Eclipse提供了Web服务开发的插件,可以从官方网站下载WTP(Web ...

    Axis开发WebService Helloworld实例

    在本实例中,我们将深入探讨如何使用Axis开发一个简单的"Hello World" WebService。这个教程是基于网上流行的一个文档,但原文档存在四处错误,我已经进行修正并经过Eclipse IDE的调试验证,确保其正确无误。 首先...

    利用axis开发webservice使用的jar包

    本文将详细介绍如何利用Axis开发Web服务,并探讨其使用的jar包。 首先,我们要理解Axis的核心功能。Axis提供了一套完整的Java API,使得开发者能够方便地构建Web服务客户端和服务器端。它支持SOAP(简单对象访问...

    Axis开发webservice搭建指南

    Axis开发Web服务(Webservice)的搭建过程是一个系统性的步骤,涉及到服务器端的配置和客户端的调用。在本文中,我们将深入探讨如何使用Apache Axis框架来创建和部署Web服务。Apache Axis是一个开源工具,它允许...

    利用AXIS开发Webservice教程.doc

    AXIS 是一个流行的开源工具,用于开发和部署Web服务,特别是在Java环境中。本文将深入讲解如何利用AXIS 1.4版本创建和发布Web服务,重点在于定制发布,因为即时发布虽然简单,但在实际开发中可能无法满足复杂需求。 ...

    AXIS开发webservice

    \axis-bin-1_4\axis-1_4\webapps\axis\WEB-INF\lib\*.jar 注意:这些包在我们下载下来的AXIS:axis-bin-1_4.zip中 3. 修改WEB.XML文件,最简单的方法是:直接把 \axis-bin-1_4\axis-1_4\webapps\axis\WEB-INF\web....

    Axis开发Webservice的简单步骤

    本篇文章将深入讲解使用Apache Axis开发Web服务的简单步骤,帮助你实现不同项目间的通信。 首先,理解Web服务的基本概念至关重要。Web服务是通过SOAP(Simple Object Access Protocol)消息在HTTP协议上进行通信的...

    axis开发webservice

    本篇文章将详细探讨使用Axis开发Web服务的过程及其重要性。 一、Axis简介 Axis是一个基于Java的SOAP(Simple Object Access Protocol)栈,它提供了从Java类到Web服务的自动绑定功能。通过Axis,开发者可以轻松地将...

    ksoap2+axis开发webservice源代码

    本人写的用axis发布webserice程序,用ksoap2调用的实际例子,主要是演示了在手机上如何编写、调用webservice。从网上看到很多类似例子但大部分出错,经过摸索后,该例子能够正常运行,但没有考虑优化等。

    AXIS入门指南-webservice

    本指南旨在为初学者提供AXIS框架下开发WebService的详细步骤,涵盖了从获取开发资源、生成 stub、编写服务器端代码到客户端测试的全过程。AXIS是一个开源的Java库,它提供了创建、部署和使用Web服务的工具,是基于...

Global site tag (gtag.js) - Google Analytics