Java URLDecoder,Linux 服务器 A 上的异常,在 Linux 服务器 B 上运行良好
Java URLDecoder, Exception on Linux Server A, Working well on Linux Server B
我在追查此问题的原因时遇到了问题。
//check string if valid url
String input = sb.toString();
URLDecoder.decode(input, "UTF-8");
这适用于 Linux 服务器 A - Red Hat Enterprise Linux 服务器版本 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 服务器版本 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 returns 异常 '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 在整个系统中不是同一个操作。
并显示输入字符串(编码字符串)。
我在追查此问题的原因时遇到了问题。
//check string if valid url
String input = sb.toString();
URLDecoder.decode(input, "UTF-8");
这适用于 Linux 服务器 A - Red Hat Enterprise Linux 服务器版本 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 服务器版本 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 returns 异常 '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 在整个系统中不是同一个操作。
并显示输入字符串(编码字符串)。