Java 如何将NewProxyConnection类型转换为AS400JDBCConnection

Java 如何将NewProxyConnection类型转换为AS400JDBCConnection,java,spring,jdbc,ibm-midrange,spring-aop,Java,Spring,Jdbc,Ibm Midrange,Spring Aop,我是春天的新手。我在Spring中使用ComboPooledDataSource进行连接池。 我正在使用AS400进行连接。 我的问题是,当我使用此连接并尝试对其进行类型转换时 AS400JDBCConnection as400Conn=(AS400JDBCConnection)conn; 它给出ClassCastCastException,因为ComboPooledDataSource返回的连接对象的类型为NewProxyConnection。我如何将其类型转换为AS400JDBCConnec

我是春天的新手。我在Spring中使用ComboPooledDataSource进行连接池。 我正在使用AS400进行连接。 我的问题是,当我使用此连接并尝试对其进行类型转换时 AS400JDBCConnection as400Conn=(AS400JDBCConnection)conn;
它给出ClassCastCastException,因为ComboPooledDataSource返回的连接对象的类型为NewProxyConnection。我如何将其类型转换为AS400JDBCConnection。

您不应该转换为
AS400JDBCConnection
。所有相关方法都应通过
连接
接口提供

您处理的不是实际的连接对象(AS400JDBCConnection),而是一个围绕它的代理对象,它管理对原始连接对象的访问。中解释了不同的代理机制


更新对注释的响应:需要访问该方法。然后,您必须切换到CGLib代理(已解释)。

Spring确实支持展开代理的ComboPooledDataSource对象。如果您使用的是JdbcTemplate,则可以将nativeJdbcExtractor属性设置为适当的对象。因此,您可以检索本机连接的任何位置,甚至任何派生对象(如ResultSet)都将是本机的


NativeJdbcExtractor接口的JavaDoc用于支持的类列表。这可以帮助您决定哪个实现适合您的应用程序。

亲爱的Sean实际上,我想在AS400JDBCConnection as400Conn=(AS400JDBCConnection)conn;字符串serverJobIdentifier=as400Conn.getServerJobIdentifier();我必须将其键入AS400JDBCConnection的主要原因