java.lang.IllegalStateException: Blobs may not be accessed after serialization

shuijinglianyi 2006-03-17 09:55:56
我使用的是oracle9,数据类型为Blob,从客户端把数据传到服务器后,对数据进行处理时,报错,信息如下:java.lang.IllegalStateException: Blobs may not be accessed after serialization
不知道是什么原因,请高手指点,谢谢
...全文
849 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
cenlmmx 2006-03-17
  • 打赏
  • 举报
回复
看看源码,blob为空就会产生这个异常.
1 //$Id: SerializableBlob.java,v 1.1 2005/03/02 11:43:35 oneovthafew Exp $
2 package org.hibernate.lob;
3
4 import java.io.InputStream;
5 import java.io.OutputStream;
6 import java.io.Serializable;
7 import java.sql.Blob;
8 import java.sql.SQLException;
9
10 /**
11 * @author Gavin King
12 */
13 public class SerializableBlob implements Serializable, Blob {
14
15 private transient final Blob blob;
16
17 public SerializableBlob(Blob blob) {
18 this.blob = blob;
19 }
20
21 public Blob getWrappedBlob() {
22 if ( blob==null ) {
23 throw new IllegalStateException("Blobs may not be accessed after serialization");
24 }
25 else {
26 return blob;
27 }
28 }
29
30 public long length() throws SQLException {
31 return getWrappedBlob().length();
32 }
33
34 public byte[] getBytes(long pos, int length) throws SQLException {
35 return getWrappedBlob().getBytes(pos, length);
36 }
37
38 public InputStream getBinaryStream() throws SQLException {
39 return getWrappedBlob().getBinaryStream();
40 }
41
42 public long position(byte[] pattern, long start) throws SQLException {
43 return getWrappedBlob().position(pattern, start);
44 }
45
46 public long position(Blob pattern, long start) throws SQLException {
47 return getWrappedBlob().position(pattern, start);
48 }
49
50 public int setBytes(long pos, byte[] bytes) throws SQLException {
51 return getWrappedBlob().setBytes(pos, bytes);
52 }
53
54 public int setBytes(long pos, byte[] bytes, int offset, int len) throws SQLException {
55 return getWrappedBlob().setBytes(pos, bytes, offset, len);
56 }
57
58 public OutputStream setBinaryStream(long pos) throws SQLException {
59 return getWrappedBlob().setBinaryStream(pos);
60 }
61
62 public void truncate(long len) throws SQLException {
63 getWrappedBlob().truncate(len);
64 }
65
66 }

3,498

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧