`

axis1.4 发布webservice 时,参数或者返回值为自定义对象

 
阅读更多
axis1传递简单对象,对象内只有基本类型,如:String,int等
1.创建一个javaBean,类名为User。
package com.devtek;
public class User {
    private String name="llc";
    private int age = 25;
    public String toString() {
      
        return "name " + name + " age " + age ;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
2. 服务端编写。
package com.devtek;
public class ServiceServer {
// 参数和返回值不包含对象
    public String getName(String name) {
       if (name == null) {
        name = "";
       }
       return "你好" + name + ",欢迎来到Web服务的世界!";
    }
    public String getUserName(User user) {
        return user.getName();
    }
    public User getUser(String name, String password) {
        return new User();
    }
  
    //  返回简单的对象(只包含基本的类型)
    public User getUser(User user) {
        System.out.println(user.getName());
        return user;
    }
}
3. 发布服务,在server-confing.wsdd文件中进行配置。
<?xml version="1.0" encoding="UTF-8" ?>
<deployment name="defaultClientConfig"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:handler="http://xml.apache.org/axis/wsdd/providers/handler"
xmlns="http://xml.apache.org/axis/wsdd/">
<globalConfiguration name="defaultClientConfig">
   <requestFlow name="RequestFlow1" type="">
    <handler name="Handler1"
     type="java:org.apache.axis.handlers.JWSHandler">
     <parameter name="scope" value="session" />
    </handler>
    <handler name="Handler2"
     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" />
<transport name="http" type="">
   <requestFlow name="RequestFlow1" type="">
    <handler name="Handler1" type="URLMapper" />
    <handler name="Handler2"
     type="java:org.apache.axis.handlers.http.HTTPAuthHandler" />
   </requestFlow>
</transport>
<transport name="local" type="">
   <responseFlow name="ResponseFlow1" type="">
    <handler name="Handler1" type="LocalResponder" />
   </responseFlow>
</transport>
<!--这里配置了一个Web Service,如果有多个Web Service,就按这种格式在下面增加即可-->
<service name="User" provider="java:RPC">
<!-- 作用域 -->
   <parameter name="scope" value="Request" />
   <!-- 发布的webservice类名 -->
   <parameter name="className" value="com.devtek.ServiceServer" />
   <!-- 发布webservice方法,value="*" '*'代表所有, 如果不想发布所有的方法,可以在
   value 中,每个方法用空格分开,如发布两个方法:value="getUserName getUser"
   -->
   <parameter name="allowedMethods" value="*" />
   <!-- 对象映射,一对象为参数或返回值 -->
      <beanMapping languageSpecificType="java:com.devtek.User"
      qname="ns1:User" xmlns:ns1="com.devtek" />
  <!-- 类型映射,将对象进行序列化(out)和反序列化(in) -->
    <typeMapping languageSpecificType="java:com.devtek.User"
   qname="ns1:User" xmlns:ns1="com.devtek"
   deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
   serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"/>
   <namespace>com.devtek</namespace>
</service>
</deployment>
4. 客户端调用。
package com.devtek;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.ser.BeanDeserializerFactory;
import org.apache.axis.encoding.ser.BeanSerializerFactory;
public class Client {
    public static void main(String[] args) {
        try {
         String endpoint = "http://127.0.0.1:8089/axis1/webservices/User?wsdl";
         Service service = new Service();
         Call call = null;
         QName qn = new QName("http://127.0.0.1:8089/axis1/webservices/User",
         "getUser");
         call = (Call) service.createCall();
         // 注册序列化和反序列化类
         call.registerTypeMapping(User.class, qn,
                 new BeanSerializerFactory(User.class, qn),
                 new BeanDeserializerFactory(User.class, qn));
         // 设置返回类型
         call.setReturnType(qn, User.class);
         call.setOperationName(qn);
         call.setTargetEndpointAddress(new java.net.URL(endpoint));
         call.addParameter("user", qn, javax.xml.rpc.ParameterMode.IN);
         User user = new User();
         User ret = (User) call.invoke(new Object[] { user });
         System.out.println("return value is " + ret);
        } catch (Exception ex) {
         ex.printStackTrace();
        }
     }
}

http://www.iteye.com/topic/193363
分享到:
评论

相关推荐

    axis1.4及webService开发教程

    总的来说,Axis1.4是Web服务开发的一个强大工具,通过本教程提供的文件和说明,开发者可以快速掌握Web服务的开发流程,无论是在服务端发布还是客户端调用,都能得心应手。在深入学习和实践过程中,还会涉及到WS-...

    springboot+axis1.4

    而Axis1.4是Apache软件基金会的一个开源项目,它提供了一个SOAP(简单对象访问协议)Web服务框架,用于创建和部署Web服务。 当我们需要在Spring Boot项目中集成Axis1.4来实现Web服务时,我们需要了解以下几个关键...

    手写Axis1.4发布WebService以及客户端调用

    标题中的“手写Axis1.4发布WebService以及客户端调用”指的是使用Apache Axis1.4框架来创建和消费Web服务的过程。Apache Axis是用于构建Web服务的一个开源工具,它允许开发者将Java类转换为Web服务,并且提供客户端...

    axis1.4发布webservice接口步骤(java).docx

    ### Axis 1.4 发布WebService接口步骤详解 #### 一、概述 本文档旨在详细介绍如何使用Axis 1.4框架在Java环境下发布WebService接口。Axis是一个由Apache组织开发的开源项目,它提供了用于实现基于SOAP协议的Web...

    手把手教你用axis1.4搭建webservice

    标题中的“手把手教你用axis1.4搭建webservice”是指一篇教程,旨在指导读者如何使用Axis1.4这个开源工具来创建和部署Web服务。Axis是Apache软件基金会的一个项目,它提供了一种简单的方式来实现Java到SOAP(Simple ...

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

    在这个"AXIS1.4 WebService服务端和客户端例子"中,我们将深入探讨如何使用AXIS1.4搭建服务端和客户端,以及如何进行远程调用。 首先,让我们从服务端开始。服务端是提供Web服务的系统,它可以接收客户端的请求并...

    axis1.4 部署webservice说明

    `org`目录通常在Java项目中表示组织或者模块结构,可能包含了Axis1.4的库文件、自定义处理程序或扩展类等。在部署Web服务时,这个目录下的内容可能包含了服务实现的Java类或相关的支持类库。 7. **Web服务生命周期...

    springboot使用axis1.4的demo

    在本文中,我们将深入探讨如何在Spring Boot项目中集成并使用Axis1.4来发布Web服务。Spring Boot以其简化配置和快速开发能力而受到广泛欢迎,而Axis1.4是Apache软件基金会的一个开源项目,主要用于生成和消费SOAP ...

    axis1_4 发布webservice 传递对象或返回对象(一)_benet6_新浪博客.mht

    axis1_4 发布webservice 传递对象或返回对象(一)_benet6_新浪博客.mht

    axis1.4开发webservice详细实例

    Axis1.4是Apache软件基金会的一个项目,它为Java开发者提供了一套全面的工具,使得开发、部署和调用Web服务变得简单。它支持SOAP、WSDL和UDDI标准,是基于JAX-RPC(Java API for XML-Based Remote Procedure Calls)...

    axis1.4完整包下载

    2. **Axis1.4工具**:这些是命令行工具,如wsdl2java和java2wsdl,用于将Java类转换为WSDL或反之亦然,便于服务的生成和发布。 3. **示例和文档**:提供了一些示例项目和详细的API文档,帮助开发者了解如何使用Axis...

    axis1.4开发webservice

    标题中的“axis1.4开发webservice”指的是使用Apache Axis1.4框架创建Web服务的过程。Apache Axis是Java中广泛使用的开源工具,用于实现SOAP(简单对象访问协议)Web服务。Axis1.4是该工具的一个版本,它支持Java-to...

    Axis1.4生成webservice客户端 Axis1.4包及使用方法

    java org.apache.axis.wsdl.WSDL2Java -u http://xxxxxx?wsdl -p com.webservice.wsdl -t -u 要访问的webservice的地址标准的wsdl文件 -p 生成java文件的包名 -t 生成的java文件中包含junit的测试代码。 详见...

    java客户端调用webservice所调用的axis1.4包和方法调用

    本方法是用axis1.4技术,实现java客户端调用webservice。已经可实现过可行的,如果不行可加我QQ号302633进行详细解析。

    Springboot集成axis1.4的demo

    当我们需要在Spring Boot项目中集成旧版的 Axis1.4 来发布Web服务时,这通常涉及到对传统SOAP(简单对象访问协议)服务的支持。以下将详细讲解如何在Spring Boot应用中集成Axis1.4以及使用wsdd文件发布Web服务。 ...

    【java项目整合Axis1.4webservice搭建实例】服务端代码

    5. **测试服务**:可以使用Axis1.4提供的测试工具或者自定义客户端调用服务,验证服务是否正常工作。 四、 服务端代码详解 在本实例中,"server"目录下的文件应包括服务端的Java源代码、编译后的class文件以及可能...

    WebService axis1.4接口服务序列/反序列复杂项目实例

    在这个"WebService Axis1.4接口服务序列/反序列复杂项目实例"中,我们将深入探讨如何在 Axis1.4 中处理复杂的参数、自定义实体对象的序列化与反序列化,以及客户端的复杂调用。 首先,让我们理解序列化和反序列化的...

    axis1.4生成客户端

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

    [原创]使用Axis1.4开发WebService

    ### 使用Axis 1.4开发WebService:关键技术与实践 #### 一、Axis 1.4 简介 Axis是一个开放源代码的Web服务引擎,它由Apache软件基金会开发和维护,支持SOAP协议,用于创建和部署Web服务。Axis 1.4版本是其稳定且...

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

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

Global site tag (gtag.js) - Google Analytics