有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Spring OXM和Spring Core之间冲突的java解决方案

我有一个项目正在使用Spring OXM Tiger。我必须升级一个使用Spring Core (4.2.8)的专有框架,并且我有一个兼容性问题

由于框架正在从3.0升级Spring框架。从x到4.2.8,我遇到了以下例外情况:

java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.forName(Ljava/lang/String;)Ljava/lang/Class;
at org.springframework.oxm.jaxb.JaxbUtils.<clinit>(JaxbUtils.java:44)
at org.springframework.oxm.jaxb.Jaxb2Marshaller.createJaxbContext(Jaxb2Marshaller.java:272)
at org.springframework.oxm.jaxb.AbstractJaxbMarshaller.afterPropertiesSet(AbstractJaxbMarshaller.java:125)

事实上,JaxbUtils正在从Spring核心依赖项调用ClassUtils.forName(Ljava/lang/String;)

Class Jaxbutils from Spring Oxm 1.5.8:

static {
    try {
        ClassUtils.forName(JAXB_2_CLASS_NAME);
        jaxbVersion = JAXB_2;
    }
    catch (ClassNotFoundException ex) {
        // leave JAXB 1 as default
    }
}

但是,弹簧芯4.2.8。版本不再提供此签名:

Class ClassUtils from Spring Core 4.2.8:

public static Class<?> forName(String name, ClassLoader classLoader) throws ClassNotFoundException, LinkageError {

目前,我需要Spring OXM Tiger来使用StringSource、XPathOperations、Jaxb2Marshaller等。。。但它实际上无法与当前版本的SpringCore协同工作

使用SpringCore4.2.8和SpringOXMTiger的另一个版本,我找不到任何解决方法来使用编组/解编和XPath操作

我能做些什么来解决这个问题?我有点困了。有没有办法不使用Spring OXM而仍然使用XPath和JAXB2Marshaller

谢谢,


共 (1) 个答案

  1. # 1 楼答案

    可能已经晚了,但您是否尝试过使用org.springframework:spring-oxm而不是org.springframework.ws:spring-oxm并完全摆脱spring oxm tiger