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


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

        }
    }  

  • 相关阅读:
    Caused by: org.xml.sax.SAXParseException; lineNumber: 102; columnNumber: 25; cvc-complex-type.2.4.b:
    org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be res
    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Duplicate column name 'stuNo'
    java.net.UnknownHostException: you.hai.com
    ContextLoaderListener类(spring源码解析)
    perl DELETE 加请求头
    perl get请求加请求头
    perl PUT 请求加请求头
    perl post 请求加请求头
    Perl 模拟DELETE 请求
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3303809.html
Copyright © 2020-2023  润新知