Web services 使用连接Oracle SQL Developer的自建Web服务时出错

Web services 使用连接Oracle SQL Developer的自建Web服务时出错,web-services,Web Services,我正在创建一个webservices,并在使用时遇到如下错误: 线程“main”org.apache.axis2.AxisFault:org.apache.axis2.AxisFault:>映射qname不适用于包:oracle.jdbc.driver 位于org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531) 位于org.apache.axis2.description.OutInAxisOpe

我正在创建一个webservices,并在使用时遇到如下错误:

线程“main”org.apache.axis2.AxisFault:org.apache.axis2.AxisFault:>映射qname不适用于包:oracle.jdbc.driver 位于org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531) 位于org.apache.axis2.description.OutInAxisOperationClient.handleResponse>>>(OutInAxisOperation.java:375) 位于org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421) 在org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)上 位于org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) 位于com.db.DatabaseClassStub.getDataBaseConnection(DatabaseClassStub.java:185) 位于com.db.TestDatabaseClass.main(TestDatabaseClass.java:13)

用于创建使用ApacheAxis2和eclipse连接Oracle SQL Developer的Web服务。我使用了以下软件: 1). 日食太阳神 2). ApacheTomcat6 3). axis2-1.6.1-bin和axis2-1.6.1-war,并将“ojdbc5”保存在tomcat lib文件夹中

我的Webservices创建java代码是

package com.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DatabaseClass {
    static Connection con = null;
    public static Connection getDataBaseConnection()
    {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e1) {       
            e1.printStackTrace();
        }
        try {
             con = DriverManager.getConnection("jdbc:oracle:thin:@10.137.12.133:1521:ora11gr2","tran1","training123");           

        } catch (SQLException e) {  
            e.printStackTrace();
        }

        if (con != null) {
            System.out.println("You made it, take control your database now!");
        } else {
            System.out.println("Failed to make connection!");
        }

        return con;     
    }
}
而使用Web服务Java代码是:

package com.db;

import java.rmi.RemoteException;

import com.db.DatabaseClassStub.GetDataBaseConnection;
import com.db.DatabaseClassStub.GetDataBaseConnectionResponse;

public class TestDatabaseClass {

    public static void main(String[] args) throws RemoteException {
        DatabaseClassStub stub = new DatabaseClassStub();
        GetDataBaseConnection conn = new GetDataBaseConnection();
        GetDataBaseConnectionResponse response = stub.getDataBaseConnection(conn);
        System.out.println(response.get_return());
    }

}

您能告诉我哪里做错了吗?每当我试图执行TestDatabaseClass.java时,就会出现我前面提到的错误。同样的代码(DatabaseClass.java),当我在简单java项目中执行时,它会给出输出,但为什么不在webservices中呢?

在SOAP web服务操作中不能“导出”JDBC
连接:跨线的内容必须按定义可序列化(作为XML)


您可以公开提供查询结果的方法/操作。

谢谢您的回复。意思是说,数据库连接对象是单独创建的,然后对它们进行查询,然后结果将在某些方法中公开。如果我是对的,那么关于这一点,我有一些问题。在哪个类中,我将创建数据库连接对象并根据需求进行查询。plz回复并再次感谢您。我建议您设计一个Web服务层,该层公开将用作SOAP Web服务的方法/操作。此WS层与处理所有数据库操作的DAO层“对话”。换句话说,您将Web服务调用与数据库调用隔离开来,这样重新设计其中一个调用对另一个调用的影响最小(这也有助于用户/角色/权限管理)。事实上,我对网络服务很陌生。u plz将提供一些示例代码或实现此示例的任何链接。