Jakarta ee 源自JBoss 5.0.1 GA的奇怪的illegalArgumentException
我们有一个部署到JBoss 5.0.1 GA的java web应用程序。有时,我们从服务器日志中观察到这样的异常Jakarta ee 源自JBoss 5.0.1 GA的奇怪的illegalArgumentException,jakarta-ee,web,jboss,Jakarta Ee,Web,Jboss,我们有一个部署到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.InputBu
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;
}
我们在测试环境中从未见过这种异常。只有在生产过程中,交通量肯定会更大。以前有人见过这个吗?如果我们知道什么会触发异常,从而知道如何复制和修复异常,这将非常有帮助。非常感谢任何提示/帮助解决此问题的可行方法是升级您的
jbossweb.jar
根据jira问题,修复程序已提交到2.x分支
:
可能的解决方法():
以下步骤有助于解决我们在服务器上遇到的类似问题
jboss-5.1.0.GA
。(考虑到你的发展
使用eclipse和ant的环境):
jbossweb.jar
(我刚刚评论了额外的不必要的资源下载和编译)
- 注意:我使用EclipseHelios构建jar,所以只需更新
和jdt.home
在build.properties.default中匹配eclipse和jdt-jar位置jdt.jar属性
output/jars/jbossweb.jar
下生成一个新的jbossweb.jar及其修复程序jbossweb.jar
复制到旧的/deploy/jbossweb.sar/jbossweb.jar
我希望这能有所帮助。非常感谢你,费德里科。非常感谢。您是否知道如何重现错误,即JBoss在什么情况下会抛出该错误?我想知道这一点,这样我就可以确定这件事是固定的,否则我将不得不祈祷很长一段时间,以确保它不会再次出现