0

直到今天,在我们的应用程序中,我们使用了一个胖战争,所有库都放在 WEB-INF/lib 中,它没有问题,但是当我们将依赖项分离到 jboss-modules 时(应用程序在 spring 容器中运行) , 并已部署,我们能够成功进行休息调用。但该应用程序也有石英作业,这些作业因以下异常跟踪而失败。

11:43:30,586 WARN [AppQuartzScheduler](MSC 服务线程 1-7)无法删除石英作业 :: QuartzJob1 groupName :: DEFAULT QuartzJob1:org.quartz.JobPersistenceException:无法获取作业触发器:QuartzJob1 from [Module” com.mts.dependants:main" 来自本地模块加载器 @4eeba477 (根:D:\3-DevEnv\jboss6.0.1\modules)] [参见嵌套异常:java.lang.ClassNotFoundException: QuartzJob1 来自 [Module "com.mts .dependants:main" 来自本地模块加载器@4eeba477 (根:D:\3-DevEnv\jboss6.0.1\modules)]] 在 org.quartz.impl.jdbcjobstore.JobStoreSupport.getTriggersForJob(JobStoreSupport.java:2144) [quartz -2.2.1.jar:] at org.quartz.impl.jdbcjobstore.JobStoreSupport$28.execute(JobStoreSupport.java:2130) [quartz-2.2.1.jar:] at org.quartz.impl.jdbcjobstore.JobStoreCMT。executeInLock(JobStoreCMT.java:245) [quartz-2.2.1.jar:] at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeWithoutLock(JobStoreSupport.java:3723) [quartz-2.2.1.jar:] at org. quartz.impl.jdbcjobstore.JobStoreSupport.getTriggersForJob(JobStoreSupport.java:2127) [quartz-2.2.1.jar:] at org.quartz.core.QuartzScheduler.getTriggersOfJob(QuartzScheduler.java:1476) [quartz-2.2.1. jar:] at org.quartz.core.QuartzScheduler.deleteJob(QuartzScheduler.java:989) [quartz-2.2.1.jar:] at org.quartz.impl.StdScheduler.deleteJob(StdScheduler.java:301) [quartz- 2.2.1.jar:] 在 AppQuartzScheduler.deleteMTSJob(AppQuartzScheduler.java:93) [classes:] 在 AppQuartzScheduler.deleteOldAndscheduleMTSJobs(AppQuartzScheduler.java:70) [classes:] 在 AppQuartzScheduler.initialize(AppQuartzScheduler.java:47) [classes:] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_60] 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_60 ] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_60] 在 java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_60 ] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1696) [spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE] 在 org.springframework.beans.factory。 support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1635) [spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE] 在 org.springframework.beans。org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory. java:540) [spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) [spring-beans-4.1 .1.RELEASE.jar:4.1.1.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) [spring-beans-4.1.1.RELEASE.jar:4.1. 1.RELEASE] 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229) [spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) [spring-beans-4.1.1 .RELEASE.jar:4.1.1.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) [spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE ] 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:725) [spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE] 在 org.springframework.context.support。 AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) [spring-context-4.1.1.RELEASE.jar:4.1.1.RELEASE] 在 org.springframework.context.support.AbstractApplicationContext。refresh(AbstractApplicationContext.java:480) [spring-context-4.1.1.RELEASE.jar:4.1.1.RELEASE] 在 org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:663) [spring-webmvc -4.1.1.RELEASE.jar:4.1.1.RELEASE] 在 org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:629) [spring-webmvc-4.1.1.RELEASE.jar:4.1.1 .RELEASE] 在 org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:677) [spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE] 在 org.springframework.web.servlet。 FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:548) [spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE] at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:489) [spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE] 在 org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) [spring-webmvc-4.1.1 .RELEASE.jar:4.1.1.RELEASE] 在 javax.servlet.GenericServlet.init(GenericServlet.java:242) [jboss-servlet-api_3.0_spec-1.0.1.Final-redhat-2.jar:1.0.1 .Final-redhat-2] 在 org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202) [jbossweb-7.0.17.Final-redhat-1-JBPAPP6-1709.jar:] 在 org.apache .catalina.core.StandardWrapper.load(StandardWrapper.java:1102) [jbossweb-7.0.17.Final-redhat-1-JBPAPP6-1709.jar:] at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext. java:3655) [jbossweb-7.0.17.Final-redhat-1-JBPAPP6-1709.jar:] at org.apache.catalina.core.StandardContext.start(StandardContext.java:第3873章【jbossweb-7.0.17.Final-redhat-1-JBPAPP6-1709.jar:】 7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4] 在 org.jboss.msc 的 org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)。 service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_60] 在 java.util.concurrent.ThreadPoolExecutor$Worker .run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_60] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_60] 原因:java.lang.ClassNotFoundException :来自 [Module "com.mts.dependants:main" 的 QuartzJob1来自 org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 的 org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked 的本地模块加载器 @4eeba477 (根:D:\3-DevEnv\jboss6.0.1\modules)] (ConcurrentClassLoader.java:468) 在 org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 在 org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 在 org.jboss.modules.ConcurrentClassLoader。 loadClass(ConcurrentClassLoader.java:120) 在 java.lang.Class.forName0(Native Method) [rt.jar:1.7.0_60] 在 java.lang.Class.forName(Class.java:270) [rt.jar:1.7 .0_60] 在 java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:625) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream。readNonProxyDesc(ObjectInputStream.java:1612) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.readClass( ObjectInputStream.java:1483) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.defaultReadFields(ObjectInputStream. java:1990) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 1798) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) [rt.jar:1.7。0_60] 在 java.util.HashMap.readObject(HashMap.java:1180) [rt.jar:1.7.0_60] 在 sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source) [:1.7.0_60] 在 sun.reflect.DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_60] 在 java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_60] 在 java.io.ObjectStreamClass .invokeReadObject(ObjectStreamClass.java:1017) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.readOrdinaryObject (ObjectInputStream.java:1798) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.defaultReadFields(ObjectInputStream .java:1990) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) [rt.jar:1.7.0_60] 在 java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) [rt .jar:1.7.0_60] 在 org.quartz.impl.jdbcjobstore.oracle.OracleDelegate.getObjectFromBlob(OracleDelegate.java:141) [quartz-2.2.1.jar:] 在 org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTrigger (StdJDBCDelegate.java:1780) [quartz-2.2.1.jar:] at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTriggersForJob(StdJDBCDelegate.java:1704) [quartz-2.2.1.jar:] at org.quartz .impl.jdbcjobstore.JobStoreSupport。getTriggersForJob(JobStoreSupport.java:2141) [quartz-2.2.1.jar:] ... 43 更多

11:43:30,845 致命 [AppQuartzScheduler](MSC 服务线程 1-7)无法安排石英作业 ::DEFAULTQuartzJob1:org.quartz.ObjectAlreadyExistsException:无法存储作业:'DEFAULT.QuartzJob1',因为已存在具有此标识的作业. 在 org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1108) [quartz-2.2.1.jar:] 在 org.quartz.impl.jdbcjobstore.JobStoreSupport$2.executeVoid(JobStoreSupport.java:1062) [ quartz-2.2.1.jar:] at org.quartz.impl.jdbcjobstore.JobStoreSupport$VoidTransactionCallback.execute(JobStoreSupport.java:3703) [quartz-2.2.1.jar:] at org.quartz.impl.jdbcjobstore.JobStoreSupport $VoidTransactionCallback.execute(JobStoreSupport.java:3701) [quartz-2.2.1.jar:] at org.quartz.impl.jdbcjobstore.JobStoreCMT.executeInLock(JobStoreCMT.java:

应用结构:

在此处输入图像描述

4

1 回答 1

0

您是如何将您的应用程序拆分为模块的?您是否在 modules.xml 中启用了模块之间的可见性/依赖性?classnotfound 表明您的模块中可能存在一些错误配置。

于 2015-04-28T06:48:30.277 回答