-
用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());
}
}
}
请问各位大侠,这里怎么修改才可以解决这个问题啊;
2008年12月07日 10:28
目前还没有答案
相关推荐
【用Axis2开发Web Service】是本文的核心主题,轴心技术是Java开发Web服务的一种框架,相较于Axis1,其过程更为简洁。以下是关于使用Axis2开发Web Service的详细步骤和知识点: 1. **实验环境搭建**: - 首先确保...
### Axis开发Web Service实例详解 #### 一、概述 在探讨如何使用Apache Axis来开发Web Service之前,我们首先需要了解一些基本概念。 **Web Service**是一种标准的技术框架,用于实现不同平台之间的应用通信。它...
【描述】:本文将详细介绍如何在Eclipse环境中利用Axis2框架开发一个Web Service服务端,包括计算器服务CalculateService的实现步骤。 【标签】:Axis2, Eclipse, 整合开发, Web Service 【内容】: 开发Web ...
Axis2是Apache软件基金会开发的一个Web服务框架,用于在Java环境中创建和部署Web服务。它基于SOAP,提供了高效的处理和强大的功能,包括WS-ReliableMessaging、WS-Security等高级Web服务标准支持。 3. **C#开发的...
### MyEclipse下开发Web Service(Axis):深入解析与实践指南 #### 一、环境配置与准备 在深入探讨如何使用Apache Axis在MyEclipse环境下构建Web Services之前,首要任务是确保拥有一个完整的开发环境。这包括但不...
在本文中,我们将详细讲解如何使用 Axis2 创建 Web Service,以及搭建开发环境所需的步骤。 一、Axis2 简介 1. Web Service 的作用:Web Service 主要解决了不同操作系统、编程语言之间的互操作性问题,使得系统间...
【标题】基于Tomcat5.0和Axis2开发Web Service应用实例 在Web服务的世界里,Axis2是一个高效且强大的工具,它允许开发者创建、部署和使用SOAP Web服务。本教程将详细介绍如何利用Apache Tomcat 5.0作为应用服务器,...
【基于Axis2的Web Service快速开发】 Web Service是一种在互联网上进行交互的软件技术,它允许不同的系统和服务之间通过标准的协议进行数据交换。Web Service的核心特性包括自包含性、自描述性、开放性、标准性和...
标题中的“方便Web Service开发的axis2插件”指的是Axis2,这是一个开源的Web服务框架,专门用于简化和加速在Java环境中开发Web服务的过程。它提供了丰富的功能集,包括自动代码生成、服务部署以及多种协议的支持,...
### 使用Axis开发Web Service程序 #### 一、概述 随着互联网技术的发展,Web Service作为一种标准的、基于XML的网络服务形式,在实现不同平台之间数据交换和应用集成方面扮演着重要角色。Axis作为Apache组织下的一...
AXIS 是 Apache 开源项目提供的一款强大的 Web Service 引擎,用于开发和部署 Web Service。在本文中,我们将深入探讨如何使用 AXIS 在 Tomcat 6.0.26 上进行配置,并详细介绍三种部署和调用 Web Service 的方法:...
【描述】: "本文旨在引导读者通过AXIS框架体验Web服务的开发流程,适合已有Web服务基础的Java、XML开发者学习。" 【标签】: "axis webservice soap java" 【内容】: 在Web服务的世界里,AXIS是一个关键的角色。...
### Axis开发Web Service的实例详解 #### 一、概述 在现代软件开发中,Web服务是一种重要的技术,它允许不同应用程序之间通过网络进行通信。Apache Axis是实现Web服务的一个流行框架,它支持SOAP协议,并提供了...
【Axis2与Eclipse整合开发Web Service】是一个关于在Eclipse集成开发环境中使用Apache Axis2创建和部署Web服务的教程。Apache Axis2是用于构建Web服务的高效且灵活的框架,而Eclipse作为流行的Java IDE,提供了方便...
### Axis 开发 Web Service 程序详解 #### 一、Web Service 概念与应用场景 Web Service 是一种跨编程语言和操作系统平台的远程调用技术。它允许不同语言编写的程序通过网络进行通信和数据交换。Web Service 的...
为了更多喜爱开发的程序员也能迅速了解Web Service的开发,我这里整理了一些通过Axis开发Web Service的一些要点,希望能让不熟悉Web Service的开发人员能够迅速掌握Web Service。