【问题标题】:NoSuchMethodError: What version of Apache Xml Security do I need?NoSuchMethodError:我需要什么版本的 Apache Xml Security?
【发布时间】:2020-07-08 14:14:09
【问题描述】:

我遇到了这个异常

java.lang.NoSuchMethodError: org.apache.xml.security.utils.XMLUtils.decode

然后我更新了我的依赖项并转移到另一个类似的异常,我有一段时间无法解决:

当我的模块在调用此方法时收到请求时,我收到 NoSuchMethodError

WebServiceTemplate client = ...;
client.marshalSendAndReceive(req, new ActionCallback("http://samples/RequestOrder"));

它抛出

java.lang.NoSuchMethodError: org.apache.xml.security.encryption.AbstractSerializer: method <init>()V not found
    at org.apache.cxf.ws.security.wss4j.StaxSerializer.<init>(StaxSerializer.java:62)

(至少我认为)我的依赖项的相关部分

        <dependency>
            <groupId>org.apache.ws.security</groupId>
            <artifactId>wss4j</artifactId>
            <version>1.6.15</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.ws</groupId>
            <artifactId>spring-ws-security</artifactId>
            <version>3.0.9.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-ws-security</artifactId>
            <version>3.3.6</version>
        </dependency>

我查看了org.apache.xml.security.encryption 的多个版本,但看起来这些版本中的任何一个都没有这种方法。知道什么是正确的版本组合吗?

作为旁注,我还发现了这个库,并认为它会有所帮助,但它似乎与前面提到的 &lt;groupId&gt;org.apache.ws.security&lt;/groupId&gt;

有所不同
<dependency>
    <groupId>org.apache.wss4j</groupId>
    <artifactId>wss4j</artifactId>
    <version>2.3.0</version>
    <type>pom</type>
</dependency>

【问题讨论】:

    标签: java wss4j


    【解决方案1】:

    我有类似的问题,并在网上尝试了可能的解决方案,但无济于事。 一些文档表明依赖与其他依赖不匹配是关键,例如here

    关于这个确切报告的错误,我不断更改以下依赖项的版本,最终达到了这个,这是发布此答案时的最新版本。

    <dependency>
        <groupId>org.apache.santuario</groupId>
        <artifactId>xmlsec</artifactId>
        <version>2.1.4</version>
    </dependency>
    

    但请记住,如果您有以下依赖项,请排除 xmlsec 的依赖项:

    <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws-security</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.apache.santuario</groupId>
                <artifactId>xmlsec</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-20
      • 1970-01-01
      • 2014-01-28
      • 2020-05-08
      • 1970-01-01
      • 2016-08-03
      • 2017-02-12
      相关资源
      最近更新 更多