问题:
在应用使用 oracle.sql.BLOB的情况下: BLOB blob = (BLOB) rs.getBlob("img"); 数据源配置时未将ojdbc.jar放在TongWeb的lib目录下,而且在数据源配置时指定了存放在其它目录的ojdbc.jar。
若应用lib下无ojdbc.jar,则报错找不到类:
bash
java.lang.ClassNotFoundException: oracle.sql.BLOB
at com.tongweb.tomee.catalina.ThanosTomEEWebappClassLoader$1.loadClass(ThanosTomEEWebappClassLoader.java:98)
at com.tongweb.common.LoadClassCache.cacheLoadClass(LoadClassCache.java:63)
at com.tongweb.tomee.catalina.ThanosTomEEWebappClassLoader.loadClass(ThanosTomEEWebappClassLoader.java:80)
若应用lib下有ojdbc.jar,则报错类转化异常:
bash
java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to oracle.sql.BLOB]
at com.tong.Test.testDB(Test.java:81)]
at com.tong.Test.doGet(Test.java:45)]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)]
解决办法:
通过在数据源配置时指定的ojdbc.jar路径应用是加载不到的,若应用中也含有ojdbc.jar,因为是在两个不同的类加载路径,所以会有类转化异常。
解决办法是把ojdbc.jar放在TongWeb的lib下数据源与应用共用同一类路径上的ojdbc.jar。