gpt4 book ai didi

java - 无法获取 JAXBContext?

转载 作者:搜寻专家 更新时间:2023-11-01 02:46:24 27 4
gpt4 key购买 nike

在我的 java 项目中,我有一个用一些类生成的 jar。我能够实例化我的 jar 中的类的实例:

Alert a = new Alert();

但是我尝试这样做:

JAXBContext context  = JAXBContext.newInstance(Alert.class);

我得到这样的运行时异常:

java.lang.InternalError: Error occured while invoking reflection on target classes. Make sure all referenced classes are on classpath: interface javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter Exception: null

知道可能是什么问题吗?谢谢

最佳答案

这发生在我身上,因为我定义了 XmlAdapter在不同的 JAR 中而不是在类路径中的实现。尝试创建 JAXBContext 时,它需要 JAXB 类型使用的这些适配器。既然我明白了这一点,这条消息就更有意义了,但仍然非常神秘。 XmlJavaTypeAdapter是注解接口(interface),代码调用失败value()注释的方法,因为它返回 Class<? extends XmlAdapter> ,一种未在类路径中定义的类类型。

如果您查看抛出异常的代码,这是不可能的:

public Class More ...getClassValue(Annotation a, String name) {
try {
return (Class)a.annotationType().getMethod(name).invoke(a);
} catch (IllegalAccessException e) {
// impossible
throw new IllegalAccessError(e.getMessage());
} catch (InvocationTargetException e) {
// impossible
throw new InternalError(e.getMessage());
} catch (NoSuchMethodException e) {
throw new NoSuchMethodError(e.getMessage());
}
}

如果没有丢失异常原因就好了。

关于java - 无法获取 JAXBContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21004786/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com