1.自定义一个Student 数据类型:

package com.chnic.webservice;

import java.io.Serializable;

public class Student implements Serializable {

private String id;
 private String name;

public Student() {}

public Student(String id, String name) {
  super();
  this.id = id;
  this.name = name;
 }

public String getId() {
  return id;
 }

public void setId(String id) {
  this.id = id;
 }

public String getName() {
  return name;
 }

public void setName(String name) {
  this.name = name;
 }
 
}

2.写Service程序:

package  com.chnic.webservice;   
  
public   class  HelloWorld {   
       
     public  HelloWorld(){} 
    
     public Student getStudentInfo(){
      Student a = new Student("001","noodles");
         return a;
     }
       
}

3.将上述文件部署至axis的class目录,并对server-config.wsdd文件进行相关描述:

<deployment  xmlns = "http://xml.apache.org/axis/wsdd/"  
            xmlns:java = "http://xml.apache.org/axis/wsdd/providers/java">
       
     <service   name = "HelloWorld"   provider = "java:RPC">   
     <parameter   name = "className"   value = "com.chnic.webservice.HelloWorld"/>   
     <parameter   name = "allowedMethods"   value = "*"/>   
     <beanMapping qname="myNS:Student" xmlns:myNS="urn:HelloWorld" languageSpecificType="java:com.chnic.webservice.Student"/>
    </service>   
</deployment>

4.重启tomcat,清空/tomcat/work,删除server-config.wsdd文件进行重新部署.

通过http://localhost:8080/axis/servlet/AxisServlet查看所部署的服务.

5.客户端写测试:

package  com.chnic.test;   
  
import  java.net.URL;   
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;

import com.chnic.webservice.Student;
  
public   class  Test {    
        
 public   static   void  main(String[] args)  throws  Exception{   
      String targetEendPoint =  "http://localhost:7070/axis/services/HelloWorld" ;   
      Service service =  new  Service();   
      Call call = (Call) service.createCall(); 
     
      QName qn = new QName("urn:HelloWorld","Student");
      call.registerTypeMapping(Student.class, qn,
        new BeanSerializerFactory(Student.class,qn),
        new BeanDeserializerFactory(Student.class,qn));
     
      call.setTargetEndpointAddress( new  URL(targetEendPoint));   
      call.setOperationName( new  QName(targetEendPoint,  "getStudentInfo" ));
      call.setReturnClass(Student.class);
     
      Student s = (Student) call.invoke( new  Object[]{}); 
     
      System.out.println(s.getName()+ " ’s id is: "  + s.getId());

}
}

webService返回自定义类型的数据处理的更多相关文章

  1. MyBatis中Mapper的返回值类型

    insert.update.delete语句的返回值类型 对数据库执行修改操作时,数据库会返回受影响的行数. 在MyBatis(使用版本3.4.6,早期版本不支持)中insert.update.del ...

  2. ResultMap和ResultType在使用中的区别、MyBatis中Mapper的返回值类型

    在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解 resultType:当使 ...

  3. webservice调用接口,接口返回数组类型

    1. 其中sendSyncMsg1接口是方法名,Vector实现了List接口,xml是sendSyncMsg1的方法形参 Service service = new Service(); Call ...

  4. WebApi 接口返回值不困惑:返回值类型详解。IHttpActionResult、void、HttpResponseMessage、自定义类型

    首先声明,我还没有这么强大的功底,只是感觉博主写的很好,就做了一个复制,请别因为这个鄙视我,博主网址:http://www.cnblogs.com/landeanfen/p/5501487.html ...

  5. CXF2.7整合spring发布webservice,返回值类型是Map和List<Map>类型

    在昨天研究了发布CXF发布webservice之后想着将以前的项目发布webservice接口,可是怎么也发布不起来,服务启动失败,原来是自己的接口有返回值类型是Map. 研究了一番之后,发现: we ...

  6. 【Spring】利用spring的JdbcTemplate查询返回结果映射到自定义类型

    // org.springframework.jdbc.core.JdbcTemplate 中的查询方法基本都有支持参数RowMapper<T> rowMapper的重载方法.下面只是随便 ...

  7. 05 SpringMVC:02.参数绑定及自定义类型转换&&04.SpringMVC返回值类型及响应数据类型&&05.文件上传&&06.异常处理及拦截器

    springMVC共三天 第一天: 01.SpringMVC概述及入门案例 02.参数绑定及自定义类型转换 03.SpringMVC常用注解 第二天: 04.SpringMVC返回值类型及响应数据类型 ...

  8. 【转】java 访问.net webservice返回的数据集

    转自[转的也是转的][http://blog.csdn.net/fox123871/article/details/8637839] 1. 概述 很多正在开发或者打算开发XML Web Service ...

  9. java通过poi读取excel中的日期类型数据或自定义类型日期

    Java 读取Excel表格日期类型数据的时候,读出来的是这样的  12-十月-2019,而Excel中输入的是 2019/10/12 或 2019-10-12 poi处理excel时,当excel没 ...

随机推荐

  1. 借助共享缓存redis实现分布式锁

    新开发的系统须要控制每一个时刻回收缓存的GC线程有且仅仅有一个在执行,假设有多个线程同一时候执行,会造成系统崩溃.假设仅仅有一个JVM进程那么非常好办.简单的借助synchronizedkeyword ...

  2. Qt 之容器内的控件全屏

    m_label = new QLabel(); ui->stackedWidget->addWidget(m_label); ui->stackedWidget->setCur ...

  3. vs2013+EF6+Mysql

    1.首先需要在整个项目中添加一个Model类库,在类库中引用EF 我需要在该项目下添加EF的MYSQL对象实体 首先需要引入几个相关引用,我通过NuGet来添加,如下图 接下来我需要通过ADO.NET ...

  4. (转)在Repeater中嵌套使用Repeater

    在一般的网站中浏览类别的用户控件通常都位于大多数 ASP.NET 页的左边,它使用户能够按类别快速的查找产品.最近遇到一个客户,因为在他网站上展示的产品并不多,所以要求在原有类别浏览的基础上将产品也加 ...

  5. (转)asp.net(C#)手记之Repeater与两级菜单

    先来张图片说明下我们要实现的菜单: 这个菜单只实现了2级哈. 我采用的方法是嵌套2个Repeater. 先看下数据库中的表结构: 数据: 上代码: aspx: <asp:Repeater ID= ...

  6. oracle数据库实验讲义-读书笔记(一)

    1.激活锁定的用户alter user scott account unlock identified by tiger;2.使用内含脚本建立scott用户@%oracle_home%\rdbms\a ...

  7. C# 导出word文档及批量导出word文档(4)

          接下来是批量导出word文档和批量打印word文件,批量导出word文档和批量打印word文件的思路差不多,只是批量打印不用打包压缩文件,而是把所有文件合成一个word,然后通过js来调用 ...

  8. 武汉科技大学ACM :1002: 零起点学算法28——判断是否闰年

    Problem Description 输入年份,判断是否闰年 Input 输入一个整数n(多组数据) Output 如果是闰年,输出yes,否则输出no(每组数据一行) Sample Input 2 ...

  9. cas+tomcat+shiro实现单点登录-1-tomcat添加https协议

    目录 1.tomcat添加https安全协议 2.下载cas server端部署到tomcat上 3.CAS服务器深入配置(连接MYSQL) 4.Apache Shiro 集成Cas作为cas cli ...

  10. 【转】C++成员函数的存储方式

    [转] http://c.biancheng.net/cpp/biancheng/view/187.html 用类去定义对象时,系统会为每一个对象分配存储空间.如果一个类包括了数据和函数,要分别为数据 ...