1

我有一個工作,名稱爲Myjob.java,根據包com.example.jobs。這門課屬於戰爭:example.war石英2.1.5 + jboss 5.0.1 - > job class - > classNotFoundException

我用下面的配置在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> 
conf下

和我有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}

編輯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並且所述屬性已經爲true。 – user514955

+0

嗨thanx guido它像魅力工作..但是我會想知道關於類加載概念它實際上是如何工作的..任何外部鏈接,你可以提供。此外,我希望這是解決它的唯一方法。會有什麼影響? – user514955

+0

歡迎。看看我在答案的腳下提供的鏈接;基本上就是以這種方式規避了每個部署的戰爭都有一個孤立的類加載器的缺省值。在同一鏈接中,您可以找到另一種解決方案;或者你可以把你的工作分成一個耳朵,並讓石英豆豆依靠那個而不是戰爭。 –