- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试实现一个调度程序来安排 3 个作业,但仅在第一个作业实现时出现不兼容的类更改错误..
错误在线,
JobDetail jobA = JobBuilder.newJob(JobA.class)
.withIdentity(jobKeyA).build();
有什么帮助吗??
完整代码如下..
import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
public class Scheduler1 {
public static void main( String[] args ) throws Exception
{
JobKey jobKeyA = new JobKey("jobA", "group1");
JobDetail jobA = JobBuilder.newJob(JobA.class)
.withIdentity(jobKeyA).build();
JobKey jobKeyB = new JobKey("jobB", "group1");
JobDetail jobB = JobBuilder.newJob(JobB.class)
.withIdentity(jobKeyB).build();
JobKey jobKeyC = new JobKey("jobC", "group1");
JobDetail jobC = JobBuilder.newJob(JobC.class)
.withIdentity(jobKeyC).build();
Trigger trigger1 = TriggerBuilder
.newTrigger()
.withIdentity("dummyTriggerName1", "group1")
.withSchedule(
CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
.build();
Trigger trigger2 = TriggerBuilder
.newTrigger()
.withIdentity("dummyTriggerName2", "group1")
.withSchedule(
CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
.build();
Trigger trigger3 = TriggerBuilder
.newTrigger()
.withIdentity("dummyTriggerName3", "group1")
.withSchedule(
CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
.build();
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(jobA, trigger1);
scheduler.scheduleJob(jobB, trigger2);
scheduler.scheduleJob(jobC, trigger3);
}
}
我有三个类 jobA、jobB、jobC,但是当我将它们添加到上面的调度程序时,我得到如下错误,
线程“main”中的异常 java.lang.IncompatibleClassChangeError:实现类 在 java.lang.ClassLoader.defineClass1( native 方法) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:788) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:447) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:361) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged( native 方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 Scheduler1.main(Scheduler1.java:15)
最佳答案
我也遇到过这个问题。在深入研究核心 Java 代码之后,我们发现这个简单的应用程序每次都会产生问题:
public static void main(String[] args) {
System.out.println(AssertionBuilderRegistry.class);
System.out.println(AssertionBuilderRegistryImpl.class);
}
通过在调试器中放置一个 Exception 断点并沿着调用堆栈向上移动直到我们得到一些命名的嫌疑人,这些类被确定为违规者。
mvn dependency:tree
产生这个片段:
\- org.apache.cxf:cxf-bundle-minimal:jar:2.4.10:compile
[INFO] | | +- org.apache.ws.xmlschema:xmlschema-core:jar:2.0.3:compile
[INFO] | | +- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
[INFO] | | +- org.apache.geronimo.specs:geronimo-annotation_1.0_spec:jar:1.1.1:compile
[INFO] | | +- javax.xml.bind:jaxb-api:jar:2.1:compile
[INFO] | | +- org.apache.neethi:neethi:jar:2.0.4:compile
所以,基本上,
AssertionBuilderRegistryImpl
必须实现/扩展
AssertionBuilderRegistry
那么,让我们来看看 CXF 版本的 AssertionBuilderRegistryImpl
public class AssertionBuilderRegistryImpl extends AssertionBuilderFactoryImpl implements
AssertionBuilderRegistry, BusExtension {
现在是 AssertionBuilderRegistry
public interface AssertionBuilderRegistry extends AssertionBuilderFactory { // intellij highlights red here on the extends
那么,让我们看看 AssertionBuilderFactory
public class AssertionBuilderFactory
好吧,我们有一个类实现和接口(interface),那个接口(interface)扩展了一个类?!
等等,这是 maven 指出的正确版本。那么,cxf minimal 依赖于与之不兼容的东西?!
让我们看一下 cxf-minimal 的 pom(片段):
<dependency>
<groupId>org.apache.neethi</groupId>
<artifactId>neethi</artifactId>
<version>3.0.2</version>
<scope>compile</scope>
</dependency>
好吧,WTF?! Maven 依赖项表示它需要 2.0.4(这显然是不兼容的)而这个工件的 pom 表示它需要 3.0.2
所以,解决方案:
<dependency>
<groupId>org.apache.neethi</groupId>
<artifactId>neethi</artifactId>
<version>3.0.2</version>
<scope>compile</scope>
</dependency>
在我们的主项目 POM 中显式声明依赖。
错误。在行家。最新版本的 maven (3.2.1) 也是如此。
关于java.lang.IncompatibleClassChangeError : Implementing class 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20137309/
编译项目时,我得到这个晦涩的异常 Looking for precompiled archives. To disable, use -Dgwt.usearchives=false Loading
我使用 Byte Buddy (v0.5.2) 动态创建一个接口(interface)的“子类”(实际上,我想创建一个实现该接口(interface)的类)。在此类实例上调用的所有方法都应重定向到另一
当我尝试通过 IntelliJ 中的 Stream Trace 调试下面代码中的流时,调试器无法评估 foreach,因为抛出了下面的错误。我不知道它是关于什么的,代码本身运行良好。 完全更新了 In
我刚开始使用 Geb,在输入来自 Geb 之书的示例代码时遇到此错误: import geb.Browser Browser.drive { go "http://google.com/ncr
在我的一个类中使用函数“createBlobInfo”时,出现“IncompatibleClassChangeError”异常: java.lang.IncompatibleClassChangeEr
在学习了 Java 中的 Lambda 表达式之后,我尝试练习一些简单的示例。但仅在我的第一个示例中,我收到了以下错误。 Exception in thread "main" java.lang.In
关于 Google 新引入的统一原生广告和 this is the documentation link.,我们不断收到错误消息至少 0.2% 的错误来自这种情况,所以它实际上很重要,我不认为它也是
我正在使用 Admob 中介从多个不同的发布商发布商那里拉取广告。我的 flurry 横幅广告似乎没有被正确拉出。我在控制台日志中看到以下错误: java.lang.IncompatibleClass
从 android 市场,我得到以下崩溃报告。我在测试我的应用程序时没有找到。崩溃发生在 PasswordActivity 类中。我正在发送堆栈跟踪和代码。谁能告诉我崩溃发生在哪里以及为什么会发生?
我向我的 Android 项目添加了一个 espresso 测试,并在创建 ActivityTestRule 的行上遇到了 IncompatibleClassChangeError。我如何找出导致它的
Espresso 测试运行良好,但在尝试检查是否出现 toast 消息时,使用此代码 onView(withText(R.string.added_successfully_msg)).inRoot(
尝试使用ScalaCheck和ScalaTest编写测试时,我遇到了一个令人讨厌的异常。这是我的依赖项: libraryDependencies ++= Seq( "org.scalatest"
在运行测试用例时,出现此异常 java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.
This question already has answers here: What causes java.lang.IncompatibleClassChangeError? (18个回答)
我正在尝试在 Maven 项目上导入 CPLEX(使用 Ubuntu 16.04)。 所以我使用以下命令将 cplex.jar 添加到 Maven 存储库:mvn install:安装文件-Dgrou
我知道这个问题已经被问过了,但不知何故,在谷歌搜索了大约一个小时后,我找不到任何令人信服的解决方案。 我正在使用 apache-jena 从 url 加载 RDF 模型。我得到 Incompatibl
java.lang.IncompatibleClassChangeError: Superclass com.google.android.gms.dynamic.zzg of com.google.
将 3.1.0.RELEASE Spring WAR 文件部署到 Tomcat 服务器时发生以下错误: java.lang.IncompatibleClassChangeError: class or
我将 Java 库打包为 JAR,当我尝试从中调用方法时,它会抛出许多 java.lang.IncompatibleClassChangeError。这些错误似乎是随机出现的。哪些问题可能导致此错误?
我正在尝试将应用程序部署到 Windows 服务器上的 Tomcat 7。我设置了一个本地副本并使用 Eclipse 进行了测试,没有遇到任何问题,但是在生产服务器上我收到了 Incompatible
我是一名优秀的程序员,十分优秀!