2013-01-25 2 views
5

Ich erhalte diese Fehlermeldung:konnte nicht Job speichern: Fahrer Blob Darstellung eines nicht unterstützten Typ ist: oracle.sql.BLOB

org.quartz.JobPersistenceException: Couldn't store job: Driver's Blob representation is of an unsupported type: oracle.sql.BLOB [See nested exception: java.sql.SQLException: Driver's Blob representation is of an unsupported type: oracle.sql.BLOB] 
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1103) 
    at org.quartz.impl.jdbcjobstore.JobStoreSupport$3.execute(JobStoreSupport.java:1042) 
    at org.quartz.impl.jdbcjobstore.JobStoreSupport$40.execute(JobStoreSupport.java:3670) 
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3742) 
    at org.quartz.impl.jdbcjobstore.JobStoreTX.executeInLock(JobStoreTX.java:90) 
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInLock(JobStoreSupport.java:3666) 
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJobAndTrigger(JobStoreSupport.java:1030) 
    at org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:743) 
    at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:243) 
    at com.akbank.bsa.core.ApplicationStartup.run(ApplicationStartup.java:66) 
    at com.akbank.bsa.core.ApplicationStartup.initialize(ApplicationStartup.java:24) 
    at com.akbank.bsa.listener.Startup.contextInitialized(Startup.java:17) 
    at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) 
    at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: java.sql.SQLException: Driver's Blob representation is of an unsupported type: oracle.sql.BLOB 
    at org.quartz.impl.jdbcjobstore.oracle.OracleDelegate.writeDataToBlob(OracleDelegate.java:646) 
    at org.quartz.impl.jdbcjobstore.oracle.OracleDelegate.insertJobDetail(OracleDelegate.java:207) 
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1097) 
    ... 19 more 

Verwendung:

Jboss AS 7.1.1

Java 1,6

Oracle Database 11g Enterprise Edition Veröffentlichung 11.2.0.2.0 - 64-Bit-Produktion

ojdbc6.jar Implementation-Version: 11.2.0.2.0

Quarz-2.1.6

Was könnte das Problem sein?

Antwort

5

Entfernen von ojdbc6.jar aus dem Klassenpfad und Hinzufügen von JBoss-Modul (ojdbc6-Modul) als Abhängigkeit löste das Problem.

+1

Warum müssen wir ojdbc6.jar aus dem Klassenpfad (WEB-INF \ lib) entfernen? Das Hinzufügen einer Modulabhängigkeit in der Datei MET-INF \ MANIFEST löste das Problem. Haben wir Probleme, wenn wir sie nicht aus dem Klassenpfad löschen? – Nagesh

1

Wir haben eine elegante Lösung für dieses Problem gefunden. es funktionierte. Wir müssen Oracle-Modul in globalen Modulen wie folgt hinzufügen.

<subsystem xmlns="urn:jboss:domain:ee:1.1"> 
     <global-modules> 
      <module name="com.oracle" slot="main"/> 
     </global-modules> 

     <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement> 
     <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement> 
    </subsystem> 
1

erfolgreich gelöst das gleiche Problem für JBoss EAP 6. Die Hauptidee ist die gleiche - Glas aus dem Krieg zu entfernen (wenn es dort ist) und lassen Sie den App-Server, es zu schaffen. Die Details sind unten.

1) Hinzugefügt WEB-INF/jboss-deployment-structure.xml:

<jboss-deployment-structure> 
<deployment> 
    <dependencies> 
     <module name="com.oracle" /> 
    </dependencies> 
</deployment> 
</jboss-deployment-structure> 

2) Definierte jboss\eap640\modules\system\layers\base\com\oracle\main\module.xml

<module xmlns="urn:jboss:module:1.1" name="com.oracle"> 
    <resources> 
    <resource-root path="ojdbc7.jar"/> 
    </resources> 
    <dependencies> 
    ... 
    </dependencies> 
</module> 

3) Setzen Sie ojdbc7.jar in jboss\eap640\modules\system\layers\base\com\oracle\main.