0 0

用axis开发java web service中关于服务返回复杂类型的问题10

我是个初学者。我做了一个简单的例子,遇到点问题,希望大家可以帮忙看看
      首先这里是个pojo类,名字为Product.java
  public class Product {
  private String pid;
  private String pname;
  private double price;
  private int cnt;
  private String ext;
 
  public int getCnt() {
    return cnt;
  }
  public void setCnt(int cnt) {
    this.cnt = cnt;
  }
  public String getExt() {
    return ext;
  }
  public void setExt(String ext) {
    this.ext = ext;
  }
  public String getPid() {
    return pid;
  }
  public void setPid(String pid) {
    this.pid = pid;
  }
  public String getPname() {
    return pname;
  }
  public void setPname(String pname) {
    this.pname = pname;
  }
  public double getPrice() {
    return price;
  }
  public void setPrice(double price) {
    this.price = price;
  }
}
接着我做了一个数据库连接的文件,,名字为:DBAccess.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DBAccess {
  private static Connection _conn = null;

  public static Connection getConn() {
    try {
      Class.forName("oracle.jdbc.driver.OracleDriver");
      _conn = DriverManager.getConnection(
          "jdbc:oracle:thin:@127.0.0.1:1521:ICSS", "PRODUCT", "icss");
    } catch (Exception e) {
      e.printStackTrace();
    }
    return _conn;
  }

  public static void closeConn(Statement stmt, ResultSet rs, Connection conn) {
    try {
      if (rs != null) {
        rs.close();
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    try {
      if (stmt != null) {
        stmt.close();
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
    try {
      if (conn != null) {
        conn.close();
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }

  public static void closeConn() {
    try {
      if (_conn == null || _conn.isClosed()) {
        return;
      } else {
        _conn.close();
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }

  public void execUpdate() {
  }

  public ResultSet exceQuery(String sql) {
    ResultSet rs = null;
    try {
      if (_conn.isClosed()) {
        System.out.println("Conn is closed!!");
      }
      Statement stmt = _conn.createStatement();
      rs = stmt.executeQuery(sql);
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return rs;
  }
}
接着我又做了一个接口:Productoption.java
import java.util.ArrayList;

public interface Productoption {
public ArrayList getAllProducts();  } //里面有一个返回为ArrayList的方法


将这几个文件通过MyEclipse+Tomcat发布之后,进入发布后classes所在的文件夹:我的是C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\SimpleExample\WEB-INF\classes
在cmd中输入命令:C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\SimpleExample\WEB-INF\classes> java org.apache.axis.wsdl.Java2WSDL  -o mb.wsdl -l "http://localhost:80/axis/services/Productoption" -n "urn:Productoption" -p"com.icss.oa.opt" "urn:Produtoption"  com.icss.oa.opt.Productoption
生成了mb.wsdl文件,接着在输入命令: java org.apache.axis.wsdl.WSDL2Java -o . -d Session -s -S true  -Nurn:Productoption com.icss.oa.opt mb.wsdl
生成了许多的.java文件,
最后就是在ProductoptionSoapBindingImpl.java中添加业务代码了,也就是说具体实现上面接口中的getAllProducts()方法了,可是在这里就有问题了

这里是ProductoptionSoapBindingImpl.java的代码
public class ProductoptionSoapBindingImpl implements com.icss.oa.opt.Productoption{


    public java.lang.Object[] getAllProducts() throws java.rmi.RemoteException {
    return null;
    }

}
这里返回类型怎么成了java.lang.Object[]而我的业务代码应该是
import ....这里也要倒入一些包
public class ProductoptionSoapBindingImpl implements com.icss.oa.opt.Productoption{


    public java.lang.Object[] getAllProducts() throws java.rmi.RemoteException {
    Connection conn = null;   
          Statement stmt = null;   
          ResultSet rs = null;
    conn = DBAccess.getConn();
  //上面主要负责数据库的连接
    String sql ="select * from product";
   
    ArrayList<product> proList = new ArrayList<product>();   
   
    try {
      stmt = conn.createStatement();
      rs = stmt.executeQuery(sql);
     
      Product product;
     
      while(rs.next()){
        product = new Product();
       
        product.setPid(rs.getString(1));
        product.setPname(rs.getString(2));
        product.setPrice(rs.getDouble(3));
        product.setCnt(rs.getInt(4));
        product.setExt(rs.getString(5));
       
        proList.add(product);
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }finally{
      DBAccess.closeConn(stmt,rs,conn);
    }
   
    return proList;//这里肯定是错误的,可是我确实想让他返回一个ArrayList类型  啊,要不然在调用的时候怎么办,如下面我写的test.java来测试这个web 服务
}                                    
  
    }

}
test.java文件
import .....//这里要倒入一些包
public class test {
public static void main(String args[]) throws ServiceException, MalformedURLException, RemoteException{  
       ProductoptionService s = new ProductoptionServiceLocator();
       Productoption opt = s.getProductoption();
       //这里我想用ArrayList因为只有这样才能取出数据库的东西啊
       ArrayList list = opt.getAllProducts();
        for (int i = 0; i < list.size(); i++){
                 Product product = (Product) list.get(i);
      
               System.out.println("pid is" +product.getPid());
        System.out.println("cnt is" +product.getCnt());
        System.out.println("ext is" +product.getExt());
        System.out.println("pname is" +product.getPname());
        System.out.println("price is" +product.getPrice());
       
       
}
}
}
请问各位大侠,这里怎么修改才可以解决这个问题啊;


SOA 
2008年12月07日 10:28
目前还没有答案

相关推荐

    用axis2开发web service

    【用Axis2开发Web Service】是本文的核心主题,轴心技术是Java开发Web服务的一种框架,相较于Axis1,其过程更为简洁。以下是关于使用Axis2开发Web Service的详细步骤和知识点: 1. **实验环境搭建**: - 首先确保...

    Axis开发Web Service实例

    ### Axis开发Web Service实例详解 #### 一、概述 在探讨如何使用Apache Axis来开发Web Service之前,我们首先需要了解一些基本概念。 **Web Service**是一种标准的技术框架,用于实现不同平台之间的应用通信。它...

    Axis2与Eclipse整合开发的Web Service的服务端

    【描述】:本文将详细介绍如何在Eclipse环境中利用Axis2框架开发一个Web Service服务端,包括计算器服务CalculateService的实现步骤。 【标签】:Axis2, Eclipse, 整合开发, Web Service 【内容】: 开发Web ...

    java基于Axis2调用C#开发的web service获取xml结果

    Axis2是Apache软件基金会开发的一个Web服务框架,用于在Java环境中创建和部署Web服务。它基于SOAP,提供了高效的处理和强大的功能,包括WS-ReliableMessaging、WS-Security等高级Web服务标准支持。 3. **C#开发的...

    MyEclipse下开发Web Service(Axis)

    ### MyEclipse下开发Web Service(Axis):深入解析与实践指南 #### 一、环境配置与准备 在深入探讨如何使用Apache Axis在MyEclipse环境下构建Web Services之前,首要任务是确保拥有一个完整的开发环境。这包括但不...

    用Axis2创建Web Service

    在本文中,我们将详细讲解如何使用 Axis2 创建 Web Service,以及搭建开发环境所需的步骤。 一、Axis2 简介 1. Web Service 的作用:Web Service 主要解决了不同操作系统、编程语言之间的互操作性问题,使得系统间...

    基于Tomcat5.0和Axis2开发Web Service应用实例

    【标题】基于Tomcat5.0和Axis2开发Web Service应用实例 在Web服务的世界里,Axis2是一个高效且强大的工具,它允许开发者创建、部署和使用SOAP Web服务。本教程将详细介绍如何利用Apache Tomcat 5.0作为应用服务器,...

    基于Axis2的Web Service 快速开发.ppt

    【基于Axis2的Web Service快速开发】 Web Service是一种在互联网上进行交互的软件技术,它允许不同的系统和服务之间通过标准的协议进行数据交换。Web Service的核心特性包括自包含性、自描述性、开放性、标准性和...

    方便Web Service开发的axis2插件

    标题中的“方便Web Service开发的axis2插件”指的是Axis2,这是一个开源的Web服务框架,专门用于简化和加速在Java环境中开发Web服务的过程。它提供了丰富的功能集,包括自动代码生成、服务部署以及多种协议的支持,...

    使用Axis开发Web Service程序

    ### 使用Axis开发Web Service程序 #### 一、概述 随着互联网技术的发展,Web Service作为一种标准的、基于XML的网络服务形式,在实现不同平台之间数据交换和应用集成方面扮演着重要角色。Axis作为Apache组织下的一...

    AXIS开发Web Service.docx

    AXIS 是 Apache 开源项目提供的一款强大的 Web Service 引擎,用于开发和部署 Web Service。在本文中,我们将深入探讨如何使用 AXIS 在 Tomcat 6.0.26 上进行配置,并详细介绍三种部署和调用 Web Service 的方法:...

    Axis开发Web Service程序教程

    【描述】: "本文旨在引导读者通过AXIS框架体验Web服务的开发流程,适合已有Web服务基础的Java、XML开发者学习。" 【标签】: "axis webservice soap java" 【内容】: 在Web服务的世界里,AXIS是一个关键的角色。...

    Axis开发Web Service的实例

    ### Axis开发Web Service的实例详解 #### 一、概述 在现代软件开发中,Web服务是一种重要的技术,它允许不同应用程序之间通过网络进行通信。Apache Axis是实现Web服务的一个流行框架,它支持SOAP协议,并提供了...

    Axis2与Eclipse整合开发Web Service

    【Axis2与Eclipse整合开发Web Service】是一个关于在Eclipse集成开发环境中使用Apache Axis2创建和部署Web服务的教程。Apache Axis2是用于构建Web服务的高效且灵活的框架,而Eclipse作为流行的Java IDE,提供了方便...

    axis开发web service程序

    ### Axis 开发 Web Service 程序详解 #### 一、Web Service 概念与应用场景 Web Service 是一种跨编程语言和操作系统平台的远程调用技术。它允许不同语言编写的程序通过网络进行通信和数据交换。Web Service 的...

    JAVA高级开发:使用Axis开发Web Service

    为了更多喜爱开发的程序员也能迅速了解Web Service的开发,我这里整理了一些通过Axis开发Web Service的一些要点,希望能让不熟悉Web Service的开发人员能够迅速掌握Web Service。

Global site tag (gtag.js) - Google Analytics