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. Python代码分析工具之dis模块

    转自:http://hi.baidu.com/tinyweb/item/923d012e8146d00872863ec0  ,格式调整过. 代码分析不是一个新的话题,代码分析重要性的判断比较主观,不同 ...

  2. BFC——块级格式上下文

    BFC中的B指的是block,对应的还有IFC,I指的是inline.对于BFC的理解可以参考层叠上下文.页面中,盒子的排布规则,是生效在对应的BFC中.两个BFC中的布局互不影响.页面的本身的根本身 ...

  3. html hack 列表

    <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> <!--[if IE]> 所有的IE可识别 <![ ...

  4. java 连接sql server2008配置

    Java 应用程序连接SQL Server2008 (Eclipse+JDK7.0+jdbc4.0.jar+Sql Server2008) 假设应用端的连接语句为: String url = &quo ...

  5. cell高度自动适应文章内容

    效果: 描述:表视图中生成多个不同的cell,cell的高度跟文字内容的多少有关 要求:需要自己在网上下载一个plis文件,然后修改两个标题 一 : 创建工程文件UIAutomaticCellHeig ...

  6. 自己手动绿色化MyEclipse

    绿化过程因每个人的文件存放路径不同而不同 首先打开你解压的MyEclipse文件,或者以前安装的MyEclipse重装系统后不能用,打开到这里:记住路径,比如我的是:D:\MyEclipse 我们打开 ...

  7. 打破C++ Const 的规则

    从一个C++菜鸟改函数开始 CString MyClass::GetStringValue() const { return m_strValue; } 这个值可能还没有赋值,好吧,那么我先判断是不是 ...

  8. shell中命令的执行流程

    在shell中,一个命令有3中写法: 1 可以直接写(Normal Command) 2 可以放在双引号中("Command") 3 可以放在单引号中('Comand') 这3中写 ...

  9. HTML5 Canvas基础知识

    HTML5画布 1.创建一个画布         <canvas id="myCanvas" width="200" height="100&q ...

  10. php如何实现上传图片文件,并替换

    首先建立两个文件: change.html 和 change.php change.html 文件的表单代码如下: <html><head> <title>chan ...