我们有一个部署到JBoss 5.0.1 GA的java Web应用程序。有时,我们会从服务器日志
中观察到此类异常java.lang.IllegalArgumentException
at java.nio.Buffer.position(Buffer.java:216)
at org.apache.tomcat.util.buf.B2CConverter.convert(B2CConverter.java:84)
at org.apache.catalina.connector.InputBuffer.realReadChars(InputBuffer.java:403)
at org.apache.tomcat.util.buf.CharChunk.substract(CharChunk.java:416)
at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:432)
at org.apache.catalina.connector.CoyoteReader.read(CoyoteReader.java:105)
at org.apache.catalina.connector.CoyoteReader.readLine(CoyoteReader.java:158)
...
触发异常的部分代码是
public static String getStringFromRequest(HttpServletRequest request) {
String data = "";
try {
BufferedReader reader = request.getReader();
StringBuilder sb = new StringBuilder();
// the line below is the the line that blows the exception
String line = reader.readLine();
while (line != null) {
sb.append(line + "\n");
line = reader.readLine();
}
reader.close();
data = sb.toString();
}
catch (IOException e) {
...
}
return data;
}
我们的测试环境中从未见过这个例外。只有在生产中,交通肯定更重。谁看过这个吗?如果我们知道什么可以触发异常,那么我们就知道如何重现和修复异常将非常有用。非常感谢任何提示/帮助
答案 0 :(得分:0)
该问题的可行解决方案是升级您的jbossweb.jar
。
根据jira问题,该修补程序已提交至2.x branch
:java.lang.IllegalArgumentException on JBoss 5.0.1
可能的解决方法(java.lang.IllegalArgumentException on JBOSS):
以下步骤有助于解决我们在服务器上遇到的类似问题
jboss-5.1.0.GA
。 (考虑到你有一个发展 环境与日食和蚂蚁):
签出一张快照,其中包含来自anon svn的jbossweb项目的上述修复:
应用附加的补丁,以便生成
jbossweb.jar
(我只是评论了额外的不必要的资源下载和编译)。
- 注意:我使用eclipse helios来构建jar,所以只需更新
jdt.home
和 build.properties.default中的jdt.jar properties
以匹配您的eclipse和jdt jar位置的位置。运行ant deploy target。
如果您的构建成功,将在
output/jars/jbossweb.jar
下生成一个包含修复程序的新jbossweb.jar。- 上
将新
jbossweb.jar
复制到旧<profile>/deploy/jbossweb.sar/jbossweb.jar
- 醇>
重启jboss。
我希望这有帮助。