webService返回自定义类型的数据处理

本文档介绍了如何创建一个自定义数据类型Student,并在WebService服务中使用。首先定义了Student类,然后创建了一个名为HelloWorld的Service,该服务返回一个Student对象。接着将服务部署到Axis并配置server-config.wsdd文件,最后编写客户端测试代码调用服务并打印返回的Student信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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());  

    }
}   

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值