Web services 使用连接Oracle SQL Developer的自建Web服务时出错
我正在创建一个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代码是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
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将提供一些示例代码或实现此示例的任何链接。