【发布时间】:2019-11-02 09:07:57
【问题描述】:
org.apache.xmlrpc.server.XmlRpcServer 因传入请求的 NoSuchMethod 异常而失败:
Caused by: java.lang.NoSuchMethodError: org.apache.xml.serializer.Encodings.isRecognizedEncoding(Ljava/lang/String;)Z
api-server_1 | at org.apache.xml.serializer.dom3.LSSerializerImpl.write(LSSerializerImpl.java:926)
类路径包括
xalan-j2-serializer.jar
与
sh-4.2# jar tvf xalan-j2-serializer.jar | grep Encodings
7717 Tue Jan 01 00:00:00 UTC 1980 org/apache/xml/serializer/Encodings.class
11598 Tue Jan 01 00:00:00 UTC 1980 org/apache/xml/serializer/Encodings.properties
Encodings.class 反编译:
sh-4.2# javap org.apache.xml.serializer.Encodings
Compiled from "Encodings.java"
public final class org.apache.xml.serializer.Encodings {
...
public org.apache.xml.serializer.Encodings();
...
public static boolean isRecognizedEncoding(java.lang.String);
...
服务器在 docker 中运行,在 Centos:7 映像上。 OpenJDK Java 8。 客户端是一个Python2.7脚本,调用xmlrpclib.ServerProxy。
【问题讨论】:
标签: java xml-parsing xerces xalan