`
zqc53
  • 浏览: 26266 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

以前写的关于apache axis的一篇文章

阅读更多
大概1年多前,有个项目用到webservice,那时候研究axis时候的一些记录,可以对比下现在的axis2或者xfire.

                                                         WebService之axis的复杂对象传输 <script language="javascript"><!----></script>

先自定义发布:
写一个deploy.wsdd 文件:
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="mShop" provider="java:RPC">
<parameter name="className" value="tests.shop"/>
<parameter name="allowedMethods" value="*"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
qname="ns1:book"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
type="java:tests.book"
xmlns:ns1="http://127.0.0.1:8080/axis/services/mShop"/>
</service>
</deployment>

服务发布后,以上的发布信息都会被添加到server-config.wsdd文件里~
若服务发布出了什么问题(比如View里面看不到任何服务等……==!)一个考虑的就是这个server-config.wsdd~
上面的高亮显示,这是关键,它在server端定义如何序列化和反序列化complexType
若没有这个,那么你在客户端registry.getDefaultTypeMapping()将什么都得不到~~

这里的<typeMapping .../>定义了一个book对象,它是服务方法 public book[] getAllBooks() 的返回类型,类定义在tests.book,namespace是服务的namespace
具体的wsdd文件说明在axisUserguide里面,具体位置 : %axis_home%/docs/reference.html
以此类推,服务中所有的非原子类型返回都必须typeMapping一下~~~(= =!汗)

注册复杂类型的客户端代码:


org.apache.axis.client.Service service = new org.apache.axis.client.Service();
TypeMappingRegistry registry = service.getTypeMappingRegistry();
TypeMapping map = registry.getDefaultTypeMapping();
QName qType = new QName("http://localhost/tests","book");
Class qClass = Class.forName("tests.book");
map.register(qClass,qType,new BeanSerializerFactory(qClass, qType),
new BeanDeserializerFactory(qClass, qType));

要注意,Service是org.apache.axis.client.Service,而不是javax.xml.rpc.Service,如果用错了axis会发出一大堆http500来抱怨的~~~

附:自己写的一个类来远程调用axis的服务,省得一个个去service得call.
axisGo.rar (现在看来代码十分简陋,那时接触java还没半年。不过作为一个关键的螺丝已经运行在学校的xx系统里面了,真的是帮了我很大的忙,还写了个远程通过WEB服务访问数据库的orm工具,地狱一样的代码,到处是反射)
分享到:
评论

相关推荐

    使用Apache Axis 生成Web服务客户端开发天气预报的功能

    这篇博客文章将引导我们如何利用Apache Axis来生成Web服务客户端,从而实现天气预报功能的开发。下面,我们将深入探讨这个过程中的关键知识点。 首先,我们需要理解什么是Web服务。Web服务基于开放标准,如SOAP...

    WebServices With Apache Axis.pdf

    本篇文章将深入探讨如何利用Apache Axis来创建Web服务。 一、Web服务基础 Web服务基于开放标准,如XML(可扩展标记语言)用于数据表示,SOAP(简单对象访问协议)用于消息传输,WSDL(Web服务描述语言)用于服务...

    axis2 webservice 所需最少jar包

    本篇文章将详细解释在使用Axis2作为服务端或客户端时,发布Web服务或调用Web服务所需的最少jar包。 首先,我们需要理解Axis2运行的基础。Axis2依赖于一系列核心库,这些库包含了处理SOAP消息、WSDL描述、服务部署...

    Axis实践之Axis入门

    本篇文章将带你逐步了解如何在Tomcat服务器上安装和配置Axis,以便开始你的Web服务开发之旅。 **第一部分:安装Axis** 1. **下载Axis**:首先,你需要从Apache官方网站(http://ws.apache.org/axis/)下载Axis的...

    手写axis实现webservice通讯

    本篇文章将深入探讨如何手写Axis实现Web服务的通讯,这是一项对于开发者来说非常实用的技能,特别是对于需要跨系统交互或者构建分布式应用的场景。 首先,我们需要了解什么是Axis。Axis是Apache软件基金会开发的一...

    Axis Webservice Demo

    在描述中提到的博客链接指向了ITEYE上的一篇博客文章,虽然具体内容没有给出,但我们可以推测博主可能详细介绍了他们如何使用Axis进行Web服务开发的过程。通常,这样的教程会包括设置开发环境、创建服务端点、定义...

    使用axis轻松调用Webservice

    总的来说,这篇文章或教程可能涵盖了如何使用Apache Axis从WSDL生成客户端代码,如何配置和使用这些代码来调用Web服务,以及如何处理调用过程中可能出现的问题。对于想要学习如何在Java环境中集成和使用Web服务的...

    用Axis开发基于Java的Web服务

    标题“用Axis开发基于Java的Web服务”指向的是一个关于使用Apache Axis框架创建和部署Java Web服务的主题。Apache Axis是一个开源工具,它允许开发者通过Java编程语言构建、部署和使用Web服务。这篇博客文章可能详细...

    axis2学习——开发自定义的axis2服务

    标题中的“axis2学习——开发自定义的axis2服务”表明了...综上所述,这篇文章很可能是关于如何使用Apache Axis2框架创建、配置和部署自定义Web服务的教程,涉及到服务开发的基本流程、核心概念以及可能的扩展和优化。

    axis 实现 webservice 例子

    本篇文章将深入讲解如何使用Apache Axis1.4实现Web服务。 首先,我们需要理解Axis1.4的特点。作为较早版本的Axis,它已经经过了长期的测试和优化,具有良好的稳定性和兼容性。开发者可以依赖它来构建可靠的Web服务...

    Axis开发Webservice的简单步骤

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

    webservice框架axis的jar包

    本篇文章将深入探讨Axis框架及其相关的jar包。 Apache Axis是Apache Software Foundation开发的一个开源项目,其主要目标是简化Web服务的开发过程。Axis提供了以下核心功能: 1. **SOAP绑定**:Axis支持SOAP 1.1和...

    Java WebService 简单实例 方式二(axis1直接调用方式)

    本篇文章将详细介绍如何使用Apache Axis 1(以下简称Axis1)来创建和调用一个简单的Java Web Service示例。通过这种方式,我们不仅能够学习到Java Web Service的基本概念和工作原理,还能掌握具体的实现步骤和技术...

    webservice-axis1

    本篇文章将深入探讨Axis1在Web服务中的作用,以及它所需的jar包及其功能。 首先,我们要了解Apache Axis1的核心功能。Axis1是一个SOAP(Simple Object Access Protocol)引擎,它允许开发者通过SOAP协议来创建Web...

    axis web service

    通过本篇文章的学习,您应该已经了解了如何使用Apache Axis2创建Web服务的基本流程。接下来,您可以尝试按照文章中的指导,动手实践创建自己的第一个Web服务。随着实践经验的积累,您将能够更加熟练地掌握Apache ...

    利用Axis编写简单的WebService

    本篇文章将指导你如何利用Axis来编写一个简单的WebService。 首先,我们需要理解什么是WebService。WebService是一种基于开放标准的、平台无关的通信机制,它允许不同系统间的应用程序通过互联网交换数据。SOAP是...

    axis2包 使用axis2开发webservice需要的jar包

    本篇文章将详细解释如何使用Axis2来开发Web服务,并围绕提供的jar包进行深入讨论。 首先,了解 Axis2 的核心概念。Axis2 是基于 Axis1 进行优化和改进的,它采用了模块化的设计,允许开发者根据需求选择必要的组件...

    基于axis做webservice

    本篇文章将深入探讨如何利用Axis来构建和使用Web服务。 一、Web服务基础 Web服务基于一系列开放标准,如XML(可扩展标记语言)、WSDL(Web服务描述语言)和SOAP(简单对象访问协议)。WSDL描述了服务的位置、接口和...

    使用axis开发webservice使用的jar包

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

Global site tag (gtag.js) - Google Analytics