Quartz 2 no SOA Suite e Classloading

Se você quiser utilizar um projeto web utilizando o quartz-2.x no WebLogic com SOA Suite, terá um problema semelhante a esse:

java.lang.NoSuchMethodError: org.quartz.Scheduler.getJobGroupNames()Ljava/util/List;

Isso significa que o WebLogic está utilizando uma classe com versão diferente do quartz-2.x. Se você utilizar o utilitário descrito nesse post na pasta de instalação do WebLogic com SOA Suite, irá verificar que o WebLogic utiliza outra versão do quartz:

./soa/modules/quartz-all-1.6.5.jar:org/quartz/Scheduler.class

Mesmo que você coloque o jar do quartz 2.x na pasta WEB-INF/lib o ClassLoader do WebLogic irá considerar o quartz do SOA. Para dar preferência à lib que está na WEB-INF/lib adicione a seguinte instrução no arquivos WEB-INF/weblogic.xml do seu projeto:

<?xml version = '1.0' encoding = 'UTF-8'?>
<weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"
                  xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
...
  <container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
  </container-descriptor>
</weblogic-web-app>

Com isso a lib do quartz que está dentro da pasta WEB-INF lib será considerada pelo ClassLoader para essa aplicação ao invés da que está no servidor.

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6