我有一个调用过程的方法,请参阅:
public void myMethod() {
((Session) em.getDelegate()).doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
StringBuilder sqlSP = new StringBuilder();
sqlSP.append("{ call myprocedure ");
sqlSP.append("(?) }");
CallableStatement cs = connection.prepareCall(sqlSP.toString());
cs.setInt(1, 1);
try {
cs.execute();
} finally {
if (!cs.isClosed()) {
cs.close();
}
}
}
});
}
这在tomcat中运行得很好,因为方法isClosed()存在。但是当我将我的应用程序上传到jboss 5.1时,我得到了以下错误:
Caused by: java.lang.AbstractMethodError: net.sourceforge.jtds.jdbc.JtdsCallableStatement.isClosed()Z
at org.jboss.resource.adapter.jdbc.jdk6.WrappedCallableStatementJDK6.isClosed(WrappedCallableStatementJDK6.java:64)
我的tomcat和jboss都使用jTDS 1.2.5,所以我无法理解是什么问题。我尝试使用WrappedCallableStatement调试jboss,但是当我尝试检查行“cs.isClosed”时,我得到了nestedException。