- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
需要专家的帮助。我们使用的 Hibernate 版本:3.6.0.Final。在将 hibernate Pojo 保存在 oracle DB 中并尝试在 JTA 事务下提交后,出现以下错误:
Exception caught from before_completion synchronization operation: java.lang.ClassCastException: com.sun.proxy.$Proxy45 incompatible with oracle.sql.CLOB at oracle.jdbc.driver.OraclePreparedStatement.setClob(OraclePreparedStatement.java:6236) at oracle.jdbc.driver.OraclePreparedStatementWrapper.setClob(OraclePreparedStatementWrapper.java:158) at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.setClob(WSJdbcPreparedStatement.java:1845) at org.hibernate.type.descriptor.sql.ClobTypeDescriptor$1.doBind(ClobTypeDescriptor.java:60) at org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:89) at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:282) at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:277) at org.hibernate.type.AbstractSingleColumnStandardBasicType.nullSafeSet(AbstractSingleColumnStandardBasicType.java:85) at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2166) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2412) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2856) at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383) at org.hibernate.transaction.synchronization.CallbackCoordinator.beforeCompletion(CallbackCoordinator.java:117) at org.hibernate.transaction.synchronization.HibernateSynchronizationImpl.beforeCompletion(HibernateSynchronizationImpl.java:51) at com.ibm.tx.jta.impl.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:291) at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:153) at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2369) at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:577) at com.ibm.tx.jta.impl.TransactionImpl.processCommit(TransactionImpl.java:1015) at com.ibm.tx.jta.impl.TransactionImpl.commit(TransactionImpl.java:949) at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:439) at com.ibm.tx.jta.impl.TranManagerSet.commit(TranManagerSet.java:191) at com.ibm.ws.tx.jta.UserTransactionImpl.commit(UserTransactionImpl.java:302) at com.scania.webstars.scheduling.job.sla.SchedulingJobImportDataFromPAMPA.executeImportTask(SchedulingJobImportDataFromPAMPA.java:151) at com.scania.webstars.scheduling.job.sla.SchedulingJobImportDataFromPAMPA.timerExpired(SchedulingJobImportDataFromPAMPA.java:76) at com.ibm.ws.asynchbeans.timer.TimerImpl.callListenerMethod(TimerImpl.java:361) at com.ibm.ws.asynchbeans.timer.GenericTimer.run(GenericTimer.java:228) at com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:265) at java.security.AccessController.doPrivileged(AccessController.java:252) at javax.security.auth.Subject.doAs(Subject.java:495) at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:132) at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:90) at com.ibm.ws.asynchbeans.J2EEContext$DoAsProxy.run(J2EEContext.java:336) at java.security.AccessController.doPrivileged(AccessController.java:280) at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:1174) at com.ibm.ws.asynchbeans.timer.TimerImpl.runListenerAsCJWork(TimerImpl.java:490) at com.ibm.ws.asynchbeans.am._Alarm.fireAlarm(_Alarm.java:333) at com.ibm.ws.asynchbeans.am._Alarm.run(_Alarm.java:230) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)
最佳答案
这里有两种可能性。首先,请注意 com.sun.proxy.$Proxy45 是一个动态代理类(请参阅 java.lang.reflect.Proxy.getProxyClass/newProxyInstance)。Hibernate 正在调用 JDBC API java.sql.PreparedStatement.setClob(...) 之一,它接受 java.sql.Clob 参数,并提供一个动态代理实例作为该参数。
应该注意的是,WebSphere Application Server 不代理 java.sql.Clob,而且 Oracle 驱动程序似乎也不太可能(尽管并非完全不可能)这样做,所以我最好的猜测是 Hibernate 或可能的代码调用 Hibernate 正在构建代理。从异常中可以清楚地看出,Oracle JDBC 驱动程序希望能够将参数(JDBC 规范只需要是 java.sql.Clob)转换为 oracle.sql.CLOB,它是 java.sql 的特定于 oracle 的子类.Clob。参见 https://docs.oracle.com/database/121/JAJDB/oracle/sql/CLOB.html .看起来 Oracle 还定义了一个专门用于接受 oracle.sql.CLOB 的供应商特定接口(interface) https://docs.oracle.com/database/121/JAJDB/oracle/jdbc/OraclePreparedStatement.html#setCLOB_int__oracle_sql_CLOB_因此,Oracle 驱动程序要求将特定于 Oracle 的 oracle.sql.CLOB 接口(interface)提供给 JDBC 标准 java.sql.PreparedStatement.setClob(..., java.sql.Clob) 方法显然是错误的。无论如何,作为用户,您对此无能为力。 Hibernate 可以通过为 oracle.sql.CLOB 而不是 java.sql.Clob 构建动态代理来解决这个问题——如果他们还没有这样做的话,因为还有另一种可能导致这个错误。如果您的应用程序、Hibernate 和应用程序服务器中定义的 JDBC 提供程序之间有多个 Oracle 驱动程序副本,则可能有来自不同类加载器的 oracle.sql.CLOB 类的两个副本,这样这两个实例oracle.sql.CLOB 类彼此不兼容,无法转换。要检查这是否可能是原因,请查看您的应用程序和应用程序服务器 JDBC 提供程序配置、共享库以及您可能拥有 Oracle JDBC 驱动程序(通常名为 ojdbc*.jar)的多个副本的任何其他地方。如果你发现多个,切换到只使用一个,并且在一个地方。否则,问题可能超出您的控制范围。
关于java.lang.ClassCastException : com. sun.proxy.$Proxy45 与 oracle.sql.CLOB 不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43184062/
我在这里阅读了有关代理的示例: http://docs.oracle.com/javase/1.3/docs/guide/reflection/proxy.html 可以看到,'invoke'方法中的
在我的通用 nuxt 应用程序中,我将代理设置为 true 并重写了我的 url 以避免 CORS 问题。但是当我将代理设置为 true 时,我所有的发布请求都会更改为获取请求。不明白为什么以及如何将
我正在开发一个连接到 SFTP 服务器并使用 Apache Commons VFS 下载文件的应用程序,它工作得很好,但系统需要允许用户根据需要指定代理。 现在,我知道 Apache Commons
跟随线程[实体无法转换为javassist.util.proxy.Proxy,我现在确实有服务器端错误(tks thomas) 我无法在我的应用程序中面对真正的问题。 java.lang.ClassC
我正在使用 Charles Proxy 重写 API 的响应以进行测试。 如果我设置断点,我就可以按照自己的意愿完全重写原始响应。 但是,如果我想通过“重写”工具自动化它,我就陷入困境了,似乎你无法修
让我解释一下困境。 我使用 Amazon 的 3 项服务:EC2、S3 和 CloudFront。 EC2 接收上传的文件,并将其存储在 S3 存储桶中。然后 CloudFront 镜像 S3 存储桶
我正在使用 Caddy 在 DigitalOcean Ubuntu droplet 上反向代理某些站点。 这是我的 Caddy 文件,非常简单:upside_down: my-site.com {
我正在尝试测试承受多台计算机负载的 SOCKS 代理。我的代码大纲类似于 使用一个客户端直接连接到服务器,下载测试文件,并记录所花费的时间。 通过代理与一个客户端连接,下载测试文件,并记录所花费的时间
以下情况: 如果我将浏览器的 http/https 代理设置为 Charles 为 (127.0.0.1:8888) 配置的端口,使用 Charles 代理拦截 Web 流量就可以正常工作 如果我将浏
我有一个使用 grunt 构建的 angularJs 应用程序和一个用 Java 编写的在 tomcat 服务器上运行的服务器后端。为了在开发时将它们连接在一起,我想使用 grunt-connect-
对于文件上传,我试图在我的 Spring Controller 中注入(inject)并使用 validator ,如下所示: @RestController @RequestMapping("/ap
我需要使用 CaSTLe DynamicProxy 来代理接口(interface),方法是向 ProxyGenerator.CreateInterfaceProxyWithTarget 提供接口(i
我已经看到,当不同框架(例如实现 EJB 规范的框架或某些 JPA 提供程序)中发生错误时,堆栈跟踪包含像 com.sun.proxy.$Proxy 这样的类。我知道代理是什么,但我正在寻找更技术性和
我正在使用带有多个 apiserver 的集群设置,它们前面有一个负载均衡器,用于外部访问,并安装在裸机上。 就像 High Availability Kubernetes Clusters 中提到的
我使用 Charles 代理(在 OS X 10.9.3 下,Mavericks 下)修改 Origin header ,以便我连接的 API(开发中)接受来自开发环境的传入请求。 我设法通过一个简单
我已经在 Python 中实现了一个“网络服务”父类(super class),如下所示: class NetworkService (threading.Thread): """
我正在使用node.js代理。但是它工作成功: proxy.on('proxyResponse', function (proxyRes, req, res) { console.log("h
我正在尝试使用Nginx-Proxy在Ubuntu VPS的docker容器内运行WordPress网站。 我创建了以下docker-compose.yml文件 version: '3.4' serv
我一直在使用 DataKinds 扩展以类型安全的方式将类型级别 Nats 传递给函数,我只是想知道是否有更好的编写方式: (Proxy :: Proxy 42) 例如,如果类型系统看到参数需要,是否
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我是一名优秀的程序员,十分优秀!