javax.naming.CommunicationException. Root exception is java.rmi.UnmarshalException: cannot unmarshaling return; nested exception is:
java.io.StreamCorruptedException: Type code out of range, is 0
java.io.StreamCorruptedException: Type code out of range, is 0
at java.io.ObjectInputStream.peekCode(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.skipToEndOfBlockData(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java(Compiled Code))
at weblogic.rmi.internal.StubInfo.readObject(StubInfo.java(Compiled Code))
at java.lang.reflect.Method.invoke(Native Method)
at java.io.ObjectInputStream.invokeObjectReader(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Inlined Compiled Code))
<Mar 6, 2009 9:01:27 AM CST> <Error> <HTTP> <101017> <[ServletContext(id=833258113,name=DefaultWebApp,context-path=)] Root cause of ServletException
java.lang.OutOfMemoryError:
Start server side stack trace:
java.lang.OutOfMemoryError
End server side stack trace
这是错误信息 知道可能出现的情况给我说说 谢谢
java.io.StreamCorruptedException: Type code out of range, is 0
java.io.StreamCorruptedException: Type code out of range, is 0
at java.io.ObjectInputStream.peekCode(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.skipToEndOfBlockData(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java(Compiled Code))
at weblogic.rmi.internal.StubInfo.readObject(StubInfo.java(Compiled Code))
at java.lang.reflect.Method.invoke(Native Method)
at java.io.ObjectInputStream.invokeObjectReader(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Inlined Compiled Code))
<Mar 6, 2009 9:01:27 AM CST> <Error> <HTTP> <101017> <[ServletContext(id=833258113,name=DefaultWebApp,context-path=)] Root cause of ServletException
java.lang.OutOfMemoryError:
Start server side stack trace:
java.lang.OutOfMemoryError
End server side stack trace
这是错误信息 知道可能出现的情况给我说说 谢谢
你可以试着把 java 程序的启动参数改下,
另外,也不清楚你这个是什么时候出现的....程序用来做什么的也不清楚
java -Xms1024m -Xmx256m
如:你远程调用的方法是返回整个表(假设是客户关系表),而这个表中有10000多个客户的信息。
那就很容易造成你调用的远程方法服务器端的内存溢出。服务器一报错,自然在客户端会报CommunicationException通讯错误异常。
参考解决方法:
1.像5楼说的那样,增加提供RMI的服务器内存。(不过这个不是完美的解决之道。人多了,照样会抛错误)
2.控制数据量。可以在调用的方法上做文章,如分页取表中的信息。这样数据量就得以控制了。
-Xms256m -Xmx1024m
这是OutOfMemory错误,一般像楼上所说,你应该设置变量首为null,如果是控件要先remove掉