java.lang.ClassNotFoundException:org.springframework.core.ResolvableTypeProvider
我已经编写了一个带Spring注释的调度程序,但是当我执行它时,会在文章标题中给出错误消息 SchedulerConfig.javajava.lang.ClassNotFoundException:org.springframework.core.ResolvableTypeProvider,java,spring,maven,spring-scheduled,Java,Spring,Maven,Spring Scheduled,我已经编写了一个带Spring注释的调度程序,但是当我执行它时,会在文章标题中给出错误消息 SchedulerConfig.java import java.util.concurrent.Executor; import java.util.concurrent.Executors; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configu
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import com.fwd.pmap.scheduler.SchedulerApp;
@Configuration
@EnableScheduling
public class SchedulerConfig implements SchedulingConfigurer {
@Bean
public SchedulerApp bean() {
return new SchedulerApp();
}
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(taskExecutor());
}
@Bean(destroyMethod="shutdown")
public Executor taskExecutor() {
return Executors.newScheduledThreadPool(4);
}
}
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.fwd.pmap.memberInterfaceFile.CsvReader;
import com.fwd.pmap.memberInterfaceFile.CsvWriter;;
@Component
public class SchedulerApp
{
@Scheduled(cron="0 0 17 * ? *")
public void importInterfaceFile()
{
CsvReader reader = new CsvReader();
try {
reader.importInterfaceFile();
} catch (Exception e) {
e.printStackTrace();
}
}
@Scheduled(cron="0 0 6 * ? *")
public void generateInterfaceFile()
{
CsvWriter writer = new CsvWriter();
try {
writer.generateInterfaceFile();
} catch (Exception e) {
e.printStackTrace();
}
}
}
SchedulerApp.java
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import com.fwd.pmap.scheduler.SchedulerApp;
@Configuration
@EnableScheduling
public class SchedulerConfig implements SchedulingConfigurer {
@Bean
public SchedulerApp bean() {
return new SchedulerApp();
}
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(taskExecutor());
}
@Bean(destroyMethod="shutdown")
public Executor taskExecutor() {
return Executors.newScheduledThreadPool(4);
}
}
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.fwd.pmap.memberInterfaceFile.CsvReader;
import com.fwd.pmap.memberInterfaceFile.CsvWriter;;
@Component
public class SchedulerApp
{
@Scheduled(cron="0 0 17 * ? *")
public void importInterfaceFile()
{
CsvReader reader = new CsvReader();
try {
reader.importInterfaceFile();
} catch (Exception e) {
e.printStackTrace();
}
}
@Scheduled(cron="0 0 6 * ? *")
public void generateInterfaceFile()
{
CsvWriter writer = new CsvWriter();
try {
writer.generateInterfaceFile();
} catch (Exception e) {
e.printStackTrace();
}
}
}
和启动调度程序作业的主类
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
public class SchedulerMain
{
@SuppressWarnings({ "unused", "resource" })
public static void main(String[] args) {
AbstractApplicationContext context = new AnnotationConfigApplicationContext(SchedulerConfig.class);
}
}
我收到的错误消息是:
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/core/ResolvableTypeProvider
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.fwd.pmap.scheduler.SchedulerMain.main(SchedulerMain.java:10)
Caused by: java.lang.ClassNotFoundException: org.springframework.core.ResolvableTypeProvider
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 13 more
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.fwd</groupId>
<artifactId>fwd-PMAP</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<jboss.version>3.0.2.Final-redhat-15</jboss.version>
<maven-compiler-plugin.version>3.5.1</maven-compiler-plugin.version>
<maven-war-plugin.version>2.6</maven-war-plugin.version>
<!-- Spring -->
<spring-framework.version>4.0.3.RELEASE</spring-framework.version>
<!-- Hibernate / JPA -->
<hibernate.version>4.2.21.Final</hibernate.version>
<!-- Logging -->
<logback.version>1.1.7</logback.version>
<!-- Restlet -->
<restlet.version>2.3.4</restlet.version>
<commons-lang.version>3.4</commons-lang.version>
<jackson.version>2.7.1</jackson.version>
</properties>
<dependencies>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-6.0</artifactId>
<version>${jboss.version}</version>
<type>pom</type>
<scope>provided</scope>
<exclusions>
<exclusion>
<artifactId>jboss-jaxrs-api_1.1_spec</artifactId>
<groupId>org.jboss.spec.javax.ws.rs</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- Spring ORM support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring-framework.version}</version>
</dependency>
<!-- Spring Scheduler -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>1.3.3.RELEASE</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
<!-- Super CSV -->
<dependency>
<groupId>net.sf.supercsv</groupId>
<artifactId>super-csv</artifactId>
<version>2.4.0</version>
</dependency>
<!-- Excel Writer -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<!-- Copy POJO to POJO -->
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>0.7.5</version>
</dependency>
<!-- Restlet -->
<dependency>
<groupId>org.restlet.jee</groupId>
<artifactId>org.restlet.ext.servlet</artifactId>
<version>${restlet.version}</version>
</dependency>
<dependency>
<groupId>org.restlet.jse</groupId>
<artifactId>org.restlet.ext.json</artifactId>
<version>${restlet.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang.version}</version>
</dependency>
<!-- JSON -->
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.0.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${maven-war-plugin.version}</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
4.0.0
com.fwd
fwd PMAP
0.0.1-快照
战争
UTF-8
1.8
3.0.2.Final-redhat-15
3.5.1
2.6
4.0.3.1发布
4.2.21.最终版本
1.1.7
2.3.4
3.4
2.7.1
org.jboss.spec
jboss-javaee-6.0
${jboss.version}
聚甲醛
假如
jboss-jaxrs-api_1.1_规范
org.jboss.spec.javax.ws.rs
org.springframework
春季甲虫
${spring framework.version}
org.springframework.boot
弹簧靴起动器
1.3.3.1发布
回写
回归经典
${logback.version}
org.hibernate
休眠实体管理器
${hibernate.version}
net.sf.sv
超级csv
2.4.0
org.apache.poi
poi
3.9
org.modelmapper
模型映射器
0.7.5
org.restlet.jee
org.restlet.ext.servlet
${restlet.version}
org.restlet.jse
org.restlet.ext.json
${restlet.version}
org.apache.commons
commons-lang3
${commons-lang.version}
玻璃鱼
javax.json
1.0.4
com.fasterxml.jackson.core
杰克逊数据绑定
${jackson.version}
${project.artifactId}
org.springframework.boot
springbootmaven插件
org.apache.maven.plugins
maven战争插件
${maven war plugin.version}
假的
org.apache.maven.plugins
maven编译器插件
${maven编译器plugin.version}
${java.version}
${java.version}
假的
2个月前它还可以正常工作,直到最近我重新查看代码,发现它被破坏了。任何人都可以将指针?
cd
插入项目目录
使用:
查看您的lib-jar是否存在冲突版本。您是否在依赖关系树中看到了spring-core jar?@Apostolos是的,我可以在我的Maven依赖关系库下看到
spring-core-4.0.3.RELEASE.jar
您是否只看到了spring-core-4.0.3或可能还有其他版本的spring-core jar?还有其他类似spring jdbc的spring jar,spring tx、spring aop等,但只有一个spring内核,版本为4.0.3。Release我终于明白了发生了什么!!!几个月前,我换了一台工作站,在当前的笔记本电脑上,JBoss使用的是定制的settings.xml。有一个springga存储库
,它自动包含Spring相关jar的相关版本。Spring调度程序依赖于Spring上下文
。当我检查库时,我看到spring-context-4.2.5.RELEASE.jar
与spring-core-4.0.3.RELEASE.jar
不兼容。当我将cd放入项目目录并执行上面给出的命令时,mvn不会被识别为内部或外部命令、可操作程序或批处理文件。
好,这是正常的。必须将maven/bin路径设置为路径变量。@Apostolos我不确定maven/bin位置在哪里。仅供参考,我使用的是JBoss,我从不单独安装maven。我希望我说的有道理。你应该先安装maven。我建议你去并遵循快速入门