`
allankin
  • 浏览: 3051 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Axis实现webService 个人总结

阅读更多
webService开发: 个人的浅识,不妥之处,多多指教!
webService是为实现跨平台而出现的一种复合技术,也就是说不同编程语言实现的系统之间的可以通过一种标准
的协议与数据格式进行交换。若系统实现了webService,那么其他系统就可以通过其发布的wsdl对它调用。
webService是种标准,主要由UDDI(通用描述、发现和集成协议)、SOAP(简单对象访问协议(注意:不要被名称误
导了,其实针对所有数据格式而不针对对象)访问标准协议)、XML(用来传递数据、实现数据传输的跨平台)。
实现webService的技术有很多,主要有Axis等。
接下来讲下用Axis1.4怎样实现webService:

一、 搭建开发环境

搭建Axis1.4开发环境
前提条件:搭建好tomcat和jdk,要能运行,这要绝对正确了再接着往下...
之后下个Axis1.4的开发包,到apache官方。
接着讲它部署到tomcat中去,采用单独的配置xml文件配置一个应用比较好。
验证Axis环境搭建是否成功:
发现:有Error,Warning提示信息。
按提示信息将相应的包导入后,即可。

二、开发第一个简单的应用:(我用wsdd文件来管理要发布的应用接口,手动配置觉得也可以)

1.创建一个服务接口:
package com.allan.service;
import com.allan.po.Author;
public interface AuthorService {
/**
* 查询作者姓名
* @return 作者名字
*/
public String getAuthorName();
}
再创建其实现类:
package com.allan.service.impl;

import com.allan.dao.AuthorDao;
import com.allan.dao.jdbc.AuthorDaoImpl;
import com.allan.po.Author;
import com.allan.service.AuthorService;

public class AuthorServiceImpl implements AuthorService{
public String getAuthorName(){
   String name="金超";
     return name;
   }
}
目的是客户端能通过调用接口得到作者的名字。

2.配置wsdd文件。
在中间添加:
<service name="AuthorService" provider="java:RPC" style="rpc">
<parameter name="scope" value="Request"></parameter>
<parameter name="className"
value="com.allan.service.impl.AuthorServiceImpl">
</parameter>
<parameter name="allowMethods" value="*"></parameter>
</service>
其他配置信息不要改。
添加的代码:
<service>标签代表一个webService接口。
name 属性表示服务的名字,客户端调用制定的服务类。
provider 采用java的RPC(Remote Procedure Call)远程过程调用通信机制。
<parameter>的scope为Request请求状态,也可以是session会话状态。
<parameter name="className"
value="com.allan.service.impl.AuthorServiceImpl">
指定的要发布的服务类。
<parameter name="allowMethods" value="*"></parameter>  指定要发布的服务类中的方法。*表示所有方法都发布。具体方法只要是方法名即可。
确保无误后,重启应用。
3.验证是否发布成功:
在地址栏上输入:
http://localhost:8888/services/AuthorService?wsdl
出现:
……
- <wsdl:message name="getAuthorNameResponse">
  <wsdl:part name="getAuthorNameReturn" type="xsd:string" />
  </wsdl:message>
- <wsdl:portType name="AuthorServiceImpl">
- <wsdl:operation name="getAuthorName">
  <wsdl:input message="impl:getAuthorNameRequest" name="getAuthorNameRequest" />
  <wsdl:output message="impl:getAuthorNameResponse" name="getAuthorNameResponse" />
  </wsdl:operation>
……
则表示发布成功。这就是wsdl,我们可以只通过阅读它来知道服务方发布的服务。
接着就可以在客户端调用web服务了:
我在客户端用的还是java ,当然可以用其他语言,只不过代码差异。
……
String endpoint="http://localhost:8888/services/AuthorService";
Service service = new Service();
try {
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperation("getAuthorName");
String name=(String)call.invoke(new Object[]{});
System.out.println("你好!我是"+name);
……
输出:
你好!我是金超
Ok了,一个简单的返回类型为基本数据类型的webService应用完成了。

三、接下来就是怎样传回一个自定义类型:

1.添加返回Author(作者信息)的方法:(当然还得创建po:Author对象)
接口处:
/**
* 查询作者信息
* @param id 作者身份证号码
* @return
*/
public Author getAuthorInfo(String id);
实现类:
public Author getAuthorInfo(String id) {
AuthorDao ad=new AuthorDaoImpl();
Author author=ad.getAuthorInfo(id);
return author;
}
注意在创建返回的自定义对象Author是,其必须实现Serializable接口,这样可以对它进行序序列化与反序列化。
2.在wsdd中配置,采用axis提供的序列化与反序列化机制。
<beanMapping languageSpecificType= "java:com.allan.po.Author" qname= "ns1:Author" xmlns:ns1= "urn:BeanService" >
</beanMapping>
languageSpecificType 指定要序列化的与反序列化的完整路径。
Qname、xmlns:ns1 在客户端调用是使用。
3.重启应用、测试是否发布成功:
由于自定义了类型,所以会多出:
- <wsdl:types>
-<schema targetNamespace="urn:BeanService" xmlns="http://www.w3.org/2001/XMLSchema">
  <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
- <complexType name="Author">
- <sequence>
  <element name="add" nillable="true" type="xsd:string" />
  <element name="age" nillable="true" type="xsd:int" />
  <element name="id" nillable="true" type="xsd:string" />
  <element name="name" nillable="true" type="xsd:string" />
  <element name="tel" nillable="true" type="xsd:string" />
  </sequence>
  </complexType>
  </schema>
  </wsdl:types>
无错误信息,即可。

4.客户端调用:
在客户端注册自定义对象的序列化/反序列化器调用。(绿色字体部分)
……
System.out.println("*****************以下为作者的个人信息********************");
call.setOperation("getAuthorInfo");
QName qn = new QName("urn:BeanService", "Author");
call.registerTypeMapping(Author.class, qn,
new BeanSerializerFactory(Author.class, qn),
new BeanDeserializerFactory(Author.class, qn));
Author author=(Author)call.invoke(new Object[]{"330*******07101611"});
System.out.println("身份证号码:"+author.getId());
System.out.println("姓名:"+author.getName());
System.out.println("年龄:"+author.getAge());
System.out.println("电话:"+author.getAge());
System.out.println("地址:"+author.getAdd());
……
输出:
*****************以下为作者的个人信息********************
身份证号码:330*******07101611
姓名:金超
年龄:23
电话:23
地址:浙江绍兴
OK成功。

注意点:
Web.xml文件种的url配置。
地址栏种通过指定方法名与参数可以测试返回结果。如:http://localhost:8888/services/AuthorService?method=getAuthorInfo&meter=33012447
1
0
分享到:
评论

相关推荐

    Axis实现webservice完整实例

    总结,利用 Axis 实现 WebService 能够快速构建跨平台、跨语言的通信桥梁。通过服务端和客户端的代码实例,初学者可以深入理解 WebService 的工作原理和 Axis 的使用方法。在这个实例中,提供的代码已经过测试,可以...

    axis 实现 webservice 例子

    总结,Apache Axis1.4作为成熟的Web服务框架,适合那些对稳定性有较高要求的项目。通过上述步骤,开发者可以轻松地创建、部署和调用基于Axis的Web服务。同时,了解不同Web服务框架的优缺点有助于选择最适合项目需求...

    Spring集成axis2实现webservice所用到的包

    总结来说,Spring集成Axis2实现Web服务涉及到Spring的IoC容器、服务的创建和发布、以及客户端的调用等多个环节。了解并掌握这些知识点,对于开发高质量的Web服务应用至关重要。在实际项目中,务必确保所有必要的库...

    axis实现webservice

    总结起来,使用Axis实现Web服务涉及服务端和客户端的代码编写,WSDL的定义,以及必要的jar包支持。通过这个工具,开发者可以轻松地创建、部署和消费Web服务,从而实现不同系统间的互操作性。在实际项目中,理解并...

    axis2webservice接口例子

    描述中的“一个基于axis的webservice接口例子”进一步明确了这是一个基于Apache Axis2的Web服务接口实现。Axis2是Apache SOAP(Simple Object Access Protocol)项目的继任者,它不仅支持SOAP,还支持RESTful风格的...

    axis2实现webservice

    ### Axis2实现WebService知识点 #### 一、Axis2简介 - **定义**:Apache Axis2是基于Java的一个开源的WebService框架,它支持多种标准(包括SOAP1.1、SOAP1.2、WS-Addressing等),并且具有轻量级、模块化的特点。...

    Axis实现WebService开发指导V1.0.doc

    ### Axis 实现 WebService 开发指导 #### 一、WebService 概述 WebService 是一种用于在应用程序之间交换数据和服务的标准技术。它通过基于 XML 的消息处理来实现不同组件模型、操作系统和编程语言间的通信,从而...

    Axis2WebService 源码

    Axis2 WebService是一个开源的、基于Java的Web服务框架,由Apache软件基金会开发。它提供了构建和部署Web服务以及处理SOAP消息的强大工具。这个源码包可能是为了帮助开发者深入理解Axis2的工作原理,或者用于自定义...

    axis2 webservice开发总结文档

    ### Axis2 WebService 开发总结 #### 一、概述 本文档主要介绍使用 Axis2 进行 WebService 开发的基本步骤和技术要点。Axis2 是 Apache 组织下的一个开源项目,它提供了一种简单有效的方式来构建和部署 Web...

    axis 发布webservice的步骤

    为了更好地理解和实践这些步骤,可以参考给定的文档“Eclipse开发Axis_WebService实例总结_20100430.doc”。这个文档通常会包含详细的步骤、截图以及可能遇到的问题和解决方案,对于初学者非常有帮助。 总结,发布...

    axis 开发webservice经典入门例子

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

    axis实现webservice发布服务

    总结,使用Axis发布Web服务涉及到的主要步骤包括创建Java服务类、生成WSDL、部署服务、启动服务、生成客户端Stub、编写客户端代码并测试。了解这些步骤对于Java开发者在构建分布式系统和实现跨平台通信时至关重要。...

    axis调用webservice接口所需jar包.rar

    axis调用第三方webservice接口所需的jar包,包括axis-1.4.jar,axis-jaxrpc-1.3.jar,axis-jaxrpc-1.4.jar,commons-discovery-0.5.jar,commons-logging-1.2.jar,cxf-rt-databinding-jaxb-3.3.1.jar,javax.mail-...

    Axis2开发webservice总结

    Axis2开发webservice总结,资源一般,希望对大家有用

    Android axis调用Webservice

    总结,Android利用Axis2调用Web Service涉及服务端接口设计、客户端代码实现、网络请求和数据解析等多个环节。了解这些知识点有助于构建稳定可靠的跨平台通信。在实际开发中,还需要考虑错误处理、性能优化以及安全...

    基于axis2实现的webservice简单实现(客户端+服务端)。

    【标题】中的“基于axis2实现的webservice简单实现(客户端+服务端)”表明了本文将探讨如何使用Apache Axis2框架来创建和消费Web服务。Apache Axis2是Apache软件基金会开发的一个Web服务引擎,它提供了高效且灵活的...

    webService—Axis实例webService—Axis实例webService—Axis实例

    webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例

    axis+webservice教程+帮助文档

    axis+webservice教程+帮助文档

    手写axis实现webservice通讯

    标题中的“手写axis实现webservice通讯”是指使用Apache Axis框架来手动编写代码,实现Web服务的客户端和服务端通信。Apache Axis是一个开放源码的工具,它允许开发者创建和部署Web服务,同时也提供了用于调用Web...

    axis发布webservice教程源代码

    Web服务是一种基于开放标准的软件架构,允许不同系统之间的应用程序通过互联网进行通信,而Axis是实现这一目标的一个强大工具。 【压缩包子文件的文件列表】: 1. `xx.bat` - 这可能是一个批处理文件,用于自动化...

Global site tag (gtag.js) - Google Analytics