Я работаю над старым приложением Struts 1. Я добавил Quartz, так как мне нужно запланировать выполнение задания, используя этот учебник .
Однако теперь я получаю ошибку времени выполнения, в которой он жалуется на версию slf4j
Я использую.
10: 15: 07,813 ОШИБКА [stderr] (MS C служебный поток 1-13) SLF4J: slf4j-api 1.6.x (или более поздняя версия) несовместима с этой привязкой , 10: 15: 07,814 ОШИБКА [stderr] (MS C служебная нить 1-13) SLF4J: Ваша привязка имеет версию 1.5.5 или более раннюю. 10: 15: 07,814 ОШИБКА [stderr] (MS C служебная нить 1-13) SLF4J: обновите привязку до версии 1.6.x. 10: 15: 07,814 SEVERE [org. apache .struts.action.ActionServlet] (MS C служебный поток 1-13) Невозможно инициализировать Struts ActionServlet из-за непредвиденного исключения или сгенерированной ошибки, поэтому пометить сервлет как недоступный , Скорее всего, это связано с неправильной или отсутствующей зависимостью библиотеки: java .lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton () Lorg / slf4j / impl / StaticLoggerBinder; в org.slf4j.LoggerFactory.bind (LoggerFactory. java: 129) [slf4j-api-1.7.7.jar:] в org.slf4j.LoggerFactory.performInitialization (LoggerFactory. java: 108) [slf4j-api -1.7.7.jar:] at org.slf4j.LoggerFactory.getILoggerFactory (LoggerFactory. java: 302) [slf4j-api-1.7.7.jar:] at org.slf4j.LoggerFactory.getLogger (LoggerFactory. java: 276) [slf4j-api-1.7.7.jar:] в org.slf4j.LoggerFactory.getLogger (LoggerFactory. java: 288) [slf4j-api-1.7.7.jar:] в org.quartz. impl.triggers.CronTriggerImpl. (CronTriggerImpl. java: 67) [кварц-2.3.2.jar:] в org.quartz.CronScheduleBuilder.build (CronScheduleBuilder. java: 84) [кварц-2.3.2.jar :] в org.quartz.TriggerBuilder.build (TriggerBuilder. java: 101) [quartz-2.3.2.jar:] в com.travellinck.plugin.QuartzPlugin.init (QuartzPlugin. java: 33) [классы :] at org. apache .struts.action.ActionServlet.initModulePlugIns (ActionServlet. java: 884) [struts-core-1.4.1-ee6.jar:] в org. apache .struts.action. ActionServlet.init (ActionServlet. java: 352) [struts-core-1.4.1-ee6. jar:] at javax.servlet.GenericServlet.init (GenericServlet. java: 242) [jboss-servlet-api_3.0_spe c -1.0.0.Final.jar: 1.0.0.Final] в орг. apache .catalina.core.StandardWrapper.loadServlet (StandardWrapper. java: 1202) [jbossweb-7.0.1.Final.jar: 7.0.2.Final] в орг. apache .catalina.core.StandardWrapper.load (StandardWrapper. java: 1102) [jbossweb-7.0.1.Final.jar: 7.0.2.Final] в org. apache .catalina.core.StandardContext.loadOnStartup (StandardContext. java: 3631) [ jbossweb-7.0.1.Final.jar: 7.0.2.Final] в орг. apache .catalina.core.StandardContext.start (StandardContext. java: 3844) [jbossweb-7.0.1.Final.jar: 7.0.2.Final] at org.jboss.as.web.deployment.WebDeploymentService.start (WebDeploymentService. java: 70) [jboss-as-web-7.0.2.Final.jar: 7.0.2.Final] в org.jboss.ms c .service.ServiceControllerImpl $ StartTask.startService (ServiceControllerImpl. java: 1824) в org.jboss.ms c .service.ServiceControllerImpl $ StartTask.run (ServiceControl. 1759) в java .util.concurrent.ThreadPoolExe cutor.runWorker (ThreadPoolExecutor. java: 1145) [: 1.7.0_80] в java .util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor. java: 615) [: 1.7.0_80] в java .lang.Thread.run (Тема. java: 745) [: 1.7.0_80]
Мой файл pom уже имел этот профиль, используя slf4j-log4j12
версия 1.5.8
:
<profile>
<id>jspCompile</id>
<activation>
<!-- TODO: Re-activate default JSP compilation when dependency issue is sorted out. The following happens:
[ERROR] Unable to read TLD "META-INF/c.tld" from JAR file
"file:/Users/dawidl/.m2/repository/javax/javaee-api/6.0/javaee-api-6.0.jar":
org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator
class: org.apache.taglibs.standard.tlv.JstlCoreTLV -> [Help 1] -->
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo.jspc</groupId>
<artifactId>jspc-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
<phase>compile</phase>
</execution>
</executions>
<configuration>
<includeInProject>false</includeInProject>
<source>1.5</source>
<target>1.5</target>
</configuration>
<!-- Use the Tomcat 6 JSP compiler -->
<dependencies>
<dependency>
<groupId>org.codehaus.mojo.jspc</groupId>
<artifactId>jspc-compiler-tomcat6</artifactId>
<version>2.0-alpha-3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.8</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
Я добавил в свой файл pom следующую зависимость:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.7.2</version>
</dependency>
Я попытался изменить зависимость плагинов на 1.7.7
.
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
</dependencies>
</plugin>
Я также попытался добавление следующих зависимостей вне <profile>
:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
<scope>test</scope>
</dependency>
Но я все еще получаю вышеуказанную ошибку.
Вопрос
Как настроить мои зависимости, чтобы я мог заставить Кварц работать?
Спасибо