java - NoSuchMethodError:我需要什么版本的 Apache Xml Security?
问题描述
我得到了这个例外
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
看起来这些版本中的任何一个都没有这种方法。知道什么是正确的版本组合吗?
作为旁注,我还发现了这个库并认为这会有所帮助,但它似乎与上述有所不同<groupId>org.apache.ws.security</groupId>
<dependency>
<groupId>org.apache.wss4j</groupId>
<artifactId>wss4j</artifactId>
<version>2.3.0</version>
<type>pom</type>
</dependency>
解决方案
我有类似的问题,并在网上尝试了可能的解决方案,但无济于事。一些文件建议依赖与其他依赖不匹配是关键,就像这里。
关于这个确切报告的错误,我不断更改以下依赖项的版本,最终达到了这个,这是发布此答案时的最新版本。
<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>
推荐阅读
- r - 使用 rename_all 从列名中删除数字
- javascript - 将字符串转换为日期时间并使用 js 或应用程序脚本在谷歌表格中添加 5:30 小时
- typescript - 如何定义一种类型,省略工会中的一个共享道具,但将其余道具与工会成员的私有道具一起包括在内?
- c# - SqlCommand 里面的 SqlDataReader 里面的 SqlCommand
- android - Android 10 上的自定义通知中没有展开按钮
- python - 在python中拟合卷积
- linux - 在 net461 的 Xunit 测试中,使用 dotnet test CLI 时如何在 Windows /Linux 中启用 /disable AppDomain
- ios - 使用自定义合成器在图像合成期间出现黑屏
- python - 使用 Python3 C API 从字符串导入 Python 模块
- azure-functions - 在哪里可以找到在 Azure 上记录的 FunctionsStartup.Configure 中引发的异常?