我XmlJavaTypeAdapter在异常heirarchy中为每个Exception定义了一个.我使用包装器对象来编组例外如下: -
@XmlRootElement
public Wrapper<T extends BaseException> {
T exception;
}
Run Code Online (Sandbox Code Playgroud)
例外: -
@XmlJavaTypeAdapter(BaseExceptionAdapter.class) {
public class BaseException extends RuntimeException {
}
@XmlJavaTypeAdapter(DerivedExceptionAdapter.class) {
public class DerivedException extends BaseException {
}
Run Code Online (Sandbox Code Playgroud)
当我尝试封送包装器对象时,默认情况下,JAXB总是BaseExceptionAdapter在实际异常是类型时调用偶数DerivedException.如何强制它查找异常的实例类型而不是引用类型.
只是添加,package-info/ jaxb.indexetc是例外.
您是否在 package-info / jaxb.index / newInitialContext(...) 中列出了所有异常子类型?
JAX-B 将查看实例类型,但我相信子类型需要向 JAX-B 注册。它不会在运行时发现 XMLJavaTypeAdapter 注释,您必须向 JaxB 显式注册每个子类。
这也可以通过使用 JAX-B 注册的类的 @XmlSeeAlso 注释来完成。
| 归档时间: |
|
| 查看次数: |
715 次 |
| 最近记录: |