我创建了WS02MB项目。在该项目中我使用了net.sf.json.JSONObject
,累积方法出现上述错误。请告知如何解决此问题。
示例代码: -
JSONObject json = new JSONObject();
String pair= "{long sting here}";//11586 letter count
json.accumulate("message", pair);
我使用了以下jar文件: -
andes-client-3.1.1.jar
commons-beanutils.jar
commons-collections-3.2.1.jar
commons-lang.jar
commons-lang3-3.5.jar
commons-logging-1.2.jar
ezmorph-1.0.6.jar
geronimo-jms_1.1_spec-1.1.0.wso2v1.jar
json-lib-2.4-jdk15.jar
log4j-1.2.13.jar
org-apache-commons-codec.jar
org-apache-commons-logging.jar
org.eclipse.paho.client.mqttv3-1.0.2.jar
org.wso2.carbon.logging-4.4.1.jar
org.wso2.securevault-1.0.0-wso2v2.jar
错误讯息: -
java.lang.NoSuchMethodError: org.apache.commons.lang.StringUtils.isBlank(Ljava/lang/String;)Z
at org.apache.commons.lang.math.NumberUtils.createNumber(NumberUtils.java:500)
at net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:417)
at net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1008)
at net.sf.json.JSONObject._fromString(JSONObject.java:1201)
at net.sf.json.JSONObject.fromObject(JSONObject.java:165)
at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:139)
at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:103)
at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:262)
at net.sf.json.JSONObject._processValue(JSONObject.java:2655)
at net.sf.json.JSONObject.processValue(JSONObject.java:2721)
at net.sf.json.JSONObject.setInternal(JSONObject.java:2736)
at net.sf.json.JSONObject._accumulate(JSONObject.java:2635)
at net.sf.json.JSONObject.accumulate(JSONObject.java:1543)
答案 0 :(得分:5)
最后我发现了这个问题,这是由于commons-lang.jar和commons-lang3-3.5.jar冲突造成的。所以我从Gradle任务中删除了commons-lang.jar。现在它没有任何问题。
答案 1 :(得分:0)
我在使用Maven构建时遇到了相同的错误。当我应该导入commons.lang3时,我不小心导入了commons.lang实用程序。 我本以为会陷入编译/构建阶段,而不是运行时异常。
答案 2 :(得分:0)
这些其他解决方案都没有解决我的问题。我的问题是另一个 commons-lang 依赖项(较低版本)被另一个依赖项引入。如果您在 eclipse 中打开依赖层次结构并搜索 org.apache.commons.lang,您应该能够找到将其拉入的依赖。在 pom 中的该依赖下添加排除项,如下所示:
<dependency>
<groupId>Problem dependency group</groupId>
<artifactId>Problem dependency</artifactId>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.commons</groupId>
<artifactId>org.apache.commons.lang</artifactId>
</exclusion>
</exclusions>
</dependency>
这应该会阻止问题依赖引入其他版本的 commons-lang 并应该修复 noSuchMethodError。