我得到类铸异常,而试图索引实体通过Hibernate5搜索API在WebSphere8.5.5.10。这些事务由Spring Transaction管理。文档实体在本地tomcat上正确索引,但在WebSphere上没有。
我创建了一个RESTfulWeb服务调用来索引实体。
Spring4.2Hibernate核心5.0.11。最终Hibernate搜索5.5.5。最终的
这是我的配置文件
<bean id="sessionFactory"
class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="datasource" />
<property name="packagesToScan">
<list>
<value>model</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">false</prop>
<prop key="hibernate.default_schema">dev</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.search.default.directory_provider">filesystem</prop>
<prop key="hibernate.search.default.indexBase">/var/lucene/indexes</prop>
</props>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
以及websphere应用程序日志中的堆栈跟踪:-
HSEARCH000058:HSEARCH000116:MassIndexer操作组织期间出现意外错误。冬眠发动机交易jta。站台spi。JtaPlatformException:无法在组织上获取WebSphere TransactionManager。冬眠发动机交易jta。站台内部的WebSphereJSTAplatform。将TransactionManager(WebSphereJtaPlatform.java:66)定位于org。冬眠发动机交易jta。站台内部的抽象JTA平台。retrieveTransactionManager(AbstractJtaPlatform.java:87)位于org。冬眠搜索批量索引。impl。BatchTransactionalContext。org上的lookupTransactionManager(BatchTransactionalContext.java:53)。冬眠搜索批量索引。impl。BatchTransactionalContext。(BatchTransactionalContext.java:42)位于org。冬眠搜索批量索引。impl。批处理工作区。org上的runWithErrorHandler(BatchIndexingWorkspace.java:118)。冬眠搜索批量索引。impl。ErrorHandleRunnable。在java上运行(errorHandleRunnable.java:32)。util。同时发生的遗嘱执行人$runnableapter。在java上调用(Executors.java:483)。util。同时发生的未来任务。在java上运行(FutureTask.java:274)。util。同时发生的线程池执行器。java上的runWorker(ThreadPoolExecutor.java:1157)。util。同时发生的线程池执行器$Worker。在java上运行(ThreadPoolExecutor.java:627)。朗。丝线。运行(Thread.java:798)的原因是:java。lang.ClassCastException:com。国际商用机器公司ws。tx.jta。TranManagerSet与javax不兼容。交易组织的TransactionManager。冬眠发动机交易jta。站台内部的WebSphereJSTAplatform。locateTransactionManager(WebSphereJtaPlatform.java:63)
我不确定我在这里做错了什么。除了索引Web服务调用外,其他REST Web服务运行良好,我的UI按预期填充。
任何帮助都将不胜感激。
从SpringBoot版本2.2开始。0.0版本中,使用了来自雅加达的事务管理器api。如果你想让它工作,就排除它
<dependency>
<groupId>jakarta.transaction</groupId>
<artifactId>jakarta.transaction-api</artifactId>
</dependency>
从…起
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
基本思想是只有一个事务管理器。在这里,我们正在删除一个正在提供的从斯普林特引导-jpa
根据这篇文章,这是两个不同版本的java.transaction
包之间的冲突(一个在webphere中,一个在gmFire.jar中,一个用webphere部署的库)。
它还提出了一个解决方案:
放下包javax。来自GemFire的事务处理
。jar:zip-dgemfire。jar javax/transaction/*
希望这有帮助。
我们遇到了这个问题。
问题:如果我们使用使用JPA2.1的hibernate版本(
nested exception is java.lang.NoSuchMethodError: javax/persistence/Table.indexes()[Ljavax/persistence/Index;
解决方案1:解决此问题的一种方法是将classloader设置为parent\u last
,以便使用hibernate附带的JPA2.1。但是,您将遇到与上述问题类似的其他问题。
>
与带有Hibernate,异常的TransactionManager冲突:
java.lang.ClassCastExcture:com.ibm.ws.tx.jta.TranManagerSet与javax.transaction.TransactionManager不兼容
这可以通过排除导致冲突的以下jar(hibernate依赖项的示例maven配置)来解决:
<exclusion>
<artifactId>jboss-transaction-api_1.2_spec</artifactId>
<groupId>org.jboss.spec.javax.transaction</groupId>
</exclusion>
与xml API冲突。与hibernate一起提供的jar导致异常:
javax。xml。解析器。FactoryConfigurationError:javax的提供程序。xml。解析器。找不到DocumentBuilderFactory
这可以通过排除XMLAPI来解决。来自hibernate依赖项的jar,如下所示:
<exclusion>
<artifactId>xml-apis</artifactId>
<groupId>xml-apis</groupId>
</exclusion>
解决方案2:
使用自定义PersistenceProviderResolver,以便Websphere类不会干扰Hibernate:
https://stackoverflow.com/a/37354979/5150013
我有一个问题,由于我重命名com,初始化失败。国际商用机器公司ws。安全加密。jar位于/opt/was_D85/AppServer/plugins的其他名称。我已经将jar重命名为它的原始名称,但初始化仍然失败。 我的环境是:OS:aixwebsphere8.5 我得到的错误: 有人能帮忙吗? 非常感谢。
交易机制 当你用一些以太币Ether创建了一个有效的帐户时,你可以使用两种机制来与以太坊进行交易。 通过以太坊ethereum客户端进行认证签名交易 离线交易签名认证 这两种机制都是Web3j所支持的。
问题内容: 我有一个具有事务性属性的方法: 可以同时多次调用此方法,并且对于每个事务,如果发生错误而不是将其回滚(独立于其他事务),则将被多次调用。 问题在于,这可能迫使Spring创建多个事务,即使另一个事务可用,也可能会导致一些性能问题。 Java doc 说: 这似乎解决了性能问题,不是吗? 回滚问题呢?如果在使用现有事务时新方法调用回滚怎么办?那会不会回滚整个交易,即使以前的呼叫也是如此?
我想在事务中使用SpringKafka,但我真的不明白应该如何配置它以及它是如何工作的。 这是我的配置 此配置用于事务id前缀为的DefaultKafkaProducerFactory: 问题一: 我应该如何选择这个交易ID前缀?如果我理解正确,这个前缀被Spring用来为创建的每个生产者生成一个事务性id。 为什么我们不能只使用"UUID。随机UUID()? 问题二: 如果生产者被销毁,它将生成
问题内容: 我有一个具有事务性属性的方法: 可以同时多次调用此方法,并且对于每个事务,如果发生错误而不是回退(独立于其他事务),则对于每个事务。 问题是,这可能迫使Spring创建多个事务,即使另一个事务可用,也可能会导致一些性能问题。 Java doc 说: 这似乎解决了性能问题,不是吗? 回滚问题呢?如果在使用现有事务时新方法调用回滚怎么办?那会不会回滚整个交易,即使以前的呼叫也是如此? [编
交易随机数nonce nonce是一个不断增长的数值,用来唯一地标识交易。一个nonce只能使用一次,直到交易被挖掘完成,可以以相同的随机数发送交易的多个版本,但是一旦其中一个被挖掘完成,其他后续提交的都将被拒绝。 可以通过eth_getTransactionCount方法获得下一个可用的nonce: EthGetTransactionCount ethGetTransactionCount =