我正在尝试将我的应用程序从weblogic 10.3.5迁移到12.2.1当我尝试从服务器位置下载文件时(在Oracle数据库服务器中),我面临以下问题,我能够下载以下版本10.3.5的文件是我正在使用的代码示例。
我使用的JDK版本是jdk1.8.40。
public class TestFileVo{
private oracle.sql.BFILE binaryStatementFile;
public oracle.sql.BFILE getBinaryStatementFile() {
return binaryStatementFile;
}
public void setBinaryStatementFile(oracle.sql.BFILE binaryStatementFile) {
this.binaryStatementFile = binaryStatementFile;
}
}
queryString.append("select bfilename(?,?) from dual");
ArrayList<TestFileVo> stmt = (ArrayList<TestFileVo>) jdbcTemplate.query(queryString.toString(),
new PreparedStatementSetter(){
public void setValues(PreparedStatement ps) throws SQLException{
ps.setString(1, directiryString);
ps.setString(2, fileName);
}
},
new TransactionsMapper());
TestFileVo test = stmt.get(0);
if (!test.getBinaryStatementFile().fileExists()) {
return false;
}
private class TransactionsMapper implements RowMapper<TestFileVo> {
public TestFileVo mapRow(ResultSet rs, int row) throws SQLException {
TestFileVo stmtFileVO = new TestFileVo();
stmtFileVO.setBinaryStatementFile(((oracle.jdbc.OracleResultSet)rs).getBFILE(1));
return stmtFileVO;
}
}
请在下面找到异常堆栈跟踪。
java.lang.LinkageError: loader constraint violation: loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader) previously initiated loading for a different type with name "oracle/sql/BFILE"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at weblogic.utils.classloaders.GenericClassLoader.defineClassInternal(GenericClassLoader.java:1065)
at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:998)
Truncated. see log file for complete stacktrace
>