Java URLDecoder,在 Linux 服务器 A 上出现异常,在 Linux 服务器 B 上运行良好

标签 java linux http redhat

我在追踪此问题的原因时遇到问题。

//check string if valid url
String input = sb.toString();
URLDecoder.decode(input, "UTF-8");

这适用于 Linux 服务器 A - Red Hat Enterprise Linux Server 版本 5.8 (Tikanga):

$ java -version
java version "1.6.0_25"
Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.0-b11, mixed mode)

但在 Linux 服务器 B 上无法工作 - Red Hat Enterprise Linux Server 版本 6.2(圣地亚哥):

java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.4) (rhel-1.41.1.10.4.el6-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

谁能建议如何调试?

其他信息:

  • 服务器 A 和 B 使用相同的 jar
  • 在服务器 A 和 B 上传递相同的 http 请求(当然 IP 除外)
  • 尝试使用 jdk 5、6 和 7 重新编译 jar,但服务器 B 仍然无法解析 http 请求。 URLDecoder 返回异常“null”

根据要求,堆栈跟踪:
java.nio.InvalidMarkException at java.nio.Buffer.reset(Buffer.java:297) ... at java.lang.Thread.run(Thread.java:679)


最佳答案

使用try-catch并打印错误消息。 (如果您显示错误消息,也许我可以解决问题。) Open JDK和Oracle JDK在整个系统中的操作不是一样的。

并显示输入字符串(编码字符串)。

关于Java URLDecoder,在 Linux 服务器 A 上出现异常,在 Linux 服务器 B 上运行良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28493741/

相关文章:

java - Selenium Java 中的 fluidwait

linux - 仅在linux中发生的opencv undefined reference 错误

c - 在 OpenCL C 中声明 cl_uint 变量会导致段错误(核心转储)

java - http OAuth 响应错误

java - 我在生成贷款配置时缺少哪些循环?

Java EE RESTful 服务 JSON 编码 415 状态与 @Xml* 注释

java - 避免连接主动/被动 ActiveMQ 时出现错误消息

ruby-on-rails - 无法将 ruby​​ 重新安装到最新版本

http - beego POST 请求体始终为空

java - 黑莓模拟器和手机上的 DNS 错误