1

У меня есть работа с именем Myjob.java под пакетом com.example.jobs. Этот класс находится в состоянии войны: example.war.quartz 2.1.5 + jboss 5.0.1 -> класс работы -> классNotFoundException

Я использовал следующие конфигурации в JBoss в файле quartz-service.xml присутствует в развертывания папки:

<?xml version="1.0" encoding="UTF-8"?> 

<server> 
<mbean code="org.quartz.ee.jmx.jboss.QuartzService" name="user:service=QuartzService,name=QuartzService"> 
<depends>jboss.web.deployment:war=/example</depends> 
<attribute name="JndiName">Quartz</attribute> 
<attribute name="Properties"> 
org.quartz.scheduler.instanceName = DefaultQuartzScheduler 
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool 
org.quartz.threadPool.threadCount = 5 
org.quartz.threadPool.threadPriority = 4 
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore 
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin 
org.quartz.plugin.jobInitializer.fileNames = ${jboss.server.home.dir}/conf/quartz-jobs.xml 
org.quartz.plugin.jobInitializer.scanInterval = 120 
</attribute> 
</mbean> 
</server> 

и под конф я есть quartz-jobs.xml файл, имеющий следующее:

<job-scheduling-data version="1.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData" xsi:schemalocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd"> 

<pre-processing-commands><delete-jobs-in-group>*</delete-jobs-in-group> 
<delete-triggers-in-group>*</delete-triggers-in-group> 
</pre-processing-commands><processing-directives> 
<overwrite-existing-data>true</overwrite-existing-data> 
<ignore-duplicates>false</ignore-duplicates> 
</processing-directives> 

<schedule> 
<job> 
<name>TestJob</name> 
<job-class>com.example.jobs.Myjob</job-class> 
</job> 

<trigger> 
<cron> 
<name>TestCronTrigger</name> 
<job-name>TestJob</job-name> 
<cron-expression>* * * * * ?</cron-expression> 
</cron> 
</trigger> 
</schedule> 

</job-scheduling-data> 

на Беговой JBoss я получаю следующее:

2012-05-29 16:10:38,527 INFO [main] [org.quartz.core.QuartzScheduler] Scheduler meta-data: Quartz Scheduler (v2.1.5) 'DefaultQuartzScheduler' with instanceId 'NON_CLUSTERED' 
Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally. 
NOT STARTED. 
Currently in standby mode. 
Number of jobs executed: 0 
Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 5 threads. 
Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered. 

затем следует:

java.lang.ClassNotFoundException: com.example.jobs.Myjob from [email protected]{[email protected]{name=vfsfile:/D:/Datatocopy/openlogic-jboss-5.0.1.GA-all-bin-1/jboss-5.0.1.GA/server/slim/deploy/quartz-service.xml [email protected]{name=DefaultDomain parentPolicy=BEFORE [email protected]} roots=[[email protected]   1954102985  [path= context=vfsmemory://5c4o2zz-ms2vbd-h2su3au9-1-h2su3igd-t real=vfsmemory://5c4o2zz-ms2vbd-h2su3au9-1-h2su3igd-t]] delegates=null exported=[] <IMPORT-ALL>NON_EMPTY}} 
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:422) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
at org.quartz.simpl.InitThreadContextClassLoadHelper.loadClass(InitThreadContextClassLoadHelper.java:72) 
at org.quartz.simpl.CascadingClassLoadHelper.loadClass(CascadingClassLoadHelper.java:114) 
at org.quartz.simpl.CascadingClassLoadHelper.loadClass(CascadingClassLoadHelper.java:138) 
at org.quartz.xml.XMLSchedulingDataProcessor.process(XMLSchedulingDataProcessor.java:653) 
at org.quartz.xml.XMLSchedulingDataProcessor.processFile(XMLSchedulingDataProcessor.java:503) 
at org.quartz.xml.XMLSchedulingDataProcessor.processFileAndScheduleJobs(XMLSchedulingDataProcessor.java:886) 
at org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin.processFile(XMLSchedulingDataProcessorPlugin.java:330) 
at org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin.start(XMLSchedulingDataProcessorPlugin.java:257) 
at org.quartz.plugins.SchedulerPluginWithUserTransactionSupport.start(SchedulerPluginWithUserTransactionSupport.java:144) 
at org.quartz.core.QuartzScheduler.startPlugins(QuartzScheduler.java:2343) 
at org.quartz.core.QuartzScheduler.start(QuartzScheduler.java:527) 
at org.quartz.impl.StdScheduler.start(StdScheduler.java:143) 
at org.quartz.ee.jmx.jboss.QuartzService.startService(QuartzService.java:270) 
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:376) 
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:322) 
at sun.reflect.GeneratedMethodAccessor107.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) 
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) 
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668) 
at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:189) 
at $Proxy36.start(Unknown Source) 
at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42) 
at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37) 
at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) 
at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) 
at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) 
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 
at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286) 
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598) 
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062) 
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) 
at org.jboss.system.ServiceController.doChange(ServiceController.java:688) 
at org.jboss.system.ServiceController.start(ServiceController.java:460) 
at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163) 
at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99) 
at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46) 
at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62) 
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50) 
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171) 
at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439) 
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157) 
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178) 
at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098) 
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598) 
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062) 
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) 
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781) 
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:698) 
at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:304) 
at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:205) 
at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405) 
at org.jboss.Main.boot(Main.java:209) 
at org.jboss.Main$1.run(Main.java:547) 
at java.lang.Thread.run(Thread.java:662) 
+0

код здесь пожалуйста –

+0

добавленный код quido, пожалуйста, расскажите, что может быть неправильным – user514955

ответ

2

Должно быть проблемы с загрузкой класса; в файле

${jboss.server}/deploy/jboss-web.deployer/META-INF/jboss-service.xml 

найти линию

<attribute name="UseJBossWebLoader">false</attribute> 

и установить его на true.

Примечание: ${jboss.server} = ${your jboss path}/server/${your server name}

EDIT для jboss5:

найти файл (тот же вашего комментария):

deployers/jbossweb.deploy/META-INF/war-deployers-jboss-beans.xml 

и закомментируйте WarClassLoaderDeployer

Объяснение и альтернативы способ исправить here.

+0

привет, я использую jboss 5.0.1, нет файла jboss-service.xml ... на указанном пути, однако указанное свойство в файле: server \ slim \ deployers \ jbossweb.deployer \ META-INF \ war-deployers-jboss-beans.xml, и указанное свойство уже верно. – user514955

+0

Hi thanx guido это работало как шарм. Однако я хотел бы узнать о концепции погрузки на кластере, как на самом деле это работает .. любые внешние ссылки, которые вы могли бы предоставить. Также я надеюсь, что это единственный способ его решения. будут ли какие-либо воздействия? – user514955

+0

приветствуются. Посмотрите на ссылку, которую я представил в подходе к моему ответу; в основном таким образом вы обходите по умолчанию, который имеет изолированный загрузчик классов для каждой развернутой войны. В той же ссылке вы можете найти альтернативное решение; или вы могли бы разделить свои задания на ухо и сделать из них кварцевую мускулу, а не войну. –

 Смежные вопросы

  • Нет связанных вопросов^_^