gpt4 book ai didi

java - 使用 JBOSS JNDI 数据源时,Quartz 在 BLOB 上遇到异常

转载 作者:太空宇宙 更新时间:2023-11-04 09:40:43 25 4
gpt4 key购买 nike

我有一个用于quartz调度程序的spring-boot应用程序,之前它可以与默认的quartz数据源一起正常工作。但是,在转而使用 JBOSS JNDI 数据源之后,它在 Oracle 12 数据库中的 BLOB 列上遇到了异常。

我有一个自定义的 REST API,它将调用quartz API 来安排作业。应用程序不会在错误页面和 log4j 调试日志文件中返回太多有关异常的信息。

以下是有关异常的错误页面:

<小时/>

enter image description here

<小时/>

我的log4j日志文件没有异常。

我尝试过的:

  1. 最初,我使用了 Spring Boot quartz 启动器。但现在我有将其更改为 SchedulerFactoryBean。
  2. JBOSS JNDI 数据源本身看起来不错,我还有其他到目前为止,使用相同 JNDI 数据源的特性/功能好的。但请注意,这些函数不涉及具有 BLOB 列的表。

这是我之前的 quartz 属性:

enter image description here

我当前的 quartz 属性:

enter image description here

applicationContext-resources.xml 中我当前的 Quartz 配置:

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>${jdbc.jndiName}</value>
</property>
</bean>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>

<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="transactionManager" />
<property name="configLocation">
<value>classpath:/quartz.properties</value>
</property>
<property name="autoStartup" value="true" />
<property name="startupDelay" value="5" />
<property name="waitForJobsToCompleteOnShutdown" value="true" />
<!-- <property name="jobFactory">
<bean class="com.novacitynets.fornax.schedulejob.integration.springquartz.AutowiringSpringBeanJobFactory">
<property name="ignoredUnknownProperties" value="applicationContext"/>
</bean>
</property> -->
<!-- <property name="jobSchedulingDataLocations">
<list>
<value>classpath:/quartz-jobs.xml</value>
</list>
</property> -->
</bean>

我当前在 JBOSSstandalone.xml 中的数据源配置:

    <subsystem xmlns="urn:jboss:domain:datasources:5.0">
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<datasource jta="true" jndi-name="java:jboss/OracleDS" pool-name="OracleDS" enabled="true" use-ccm="true">
<connection-url>jdbc:oracle:thin:@//10.0.2.234:1521/DAX2intra</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver>oracle</driver>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>150</max-pool-size>
</pool>
<security>
<user-name>DAX2MGR</user-name>
<password>Nova#1234</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
<background-validation>true</background-validation>
<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
</validation>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="oracle" module="com.oracle.jdbc">
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>

我在 JBOSS 中的 module.xml 配置:

<module xmlns="urn:jboss:module:1.1" name="com.oracle.jdbc">

<resources>
<resource-root path="ojdbc8-12.2.0.1.jar"/>
</resources>

<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>

而且,我已将此 c3p0 依赖项添加到我的 pom.xml 中,但不确定这是否重要。

最佳答案

能够通过以下步骤解决问题:

对于 JBOSS:1. 包含oracle jdbc模块的依赖,该oracle jdbc模块是JBOSS中为ojdbc jar文件定制的模块。2.从pom.xml中排除oracle ojdbc jar。

引用quartz 2.2.1+jboss EAP 6.4 ClassNotFoundException oracle.sql.BLOB的回答

对于WebLogic1. 在quartz属性配置中,设置org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.WebLogicDelegate2.从pom.xml中排除oracle ojdbc jar

关于java - 使用 JBOSS JNDI 数据源时,Quartz 在 BLOB 上遇到异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56017287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com