com.sun.jdi.InvocationException发生了调用方法。从Object Stream读取时

时间:2013-12-31 05:46:36

标签: java exception serialization

我有一个代码,我将hashMap列表写入数据库列,其中列类型为BLOB。之前编写的代码是为了将哈希映射插入数据库,我正在修改它以插入哈希映射列表。

读写代码如下: -

WRITE: -

Object temp = attributes.get(columnName);
        if (temp instanceof List && temp != null) {
                        List extraAttributes = (ArrayList) temp;
            resultStmt.setBytes(currentIndex, createByteArray(extraAttributes));                                

                        }



private byte [] createByteArray( Object obj)
    {
        byte [] bArray = null;
        try
        {
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                ObjectOutputStream objOstream = new ObjectOutputStream(baos);
                objOstream.writeObject(obj);
                bArray = baos.toByteArray();
        }
        catch (Exception e)
        {
      TraceDbLog.writeError("Problem in createByteArray", e);

        }

                return bArray;

    }

READ : - 这里TableType.Map不是java.util.Map,它是一个用于在数据库模式中定义列类型的声明。

else if (columnType.equals(TableType.MAP))
            {
                if (resultSet.getBytes(columnName) != null)
                {
            resultMap.put(columnName, readBytes(resultSet, columnName));
                            }
                        }

private Object readBytes (ResultSet rs, String columnName)
    throws SQLException
    {
        ObjectInputStream ois  = null;
        byte [] newArray;
        Object obj = null;

        try
        {
            newArray = rs.getBytes(columnName);

            ois = new ObjectInputStream (new ByteArrayInputStream(newArray));
            obj = ois.readObject ();
        }
        catch (Exception e)
        {
            throw new SQLException (getClass() + ":readBytes: " + e);
        }
        finally
        {
            if (ois != null)
            {
                try
                {
                    ois.close ();
                }
                catch (IOException e)
                {
                    throw new SQLException (getClass() + ":readBytes: " + e);
                }
            }
        }

        return obj;

    }

问题

写没有相关问题。当我要进行阅读操作时

obj = ois.readObject ();

在这一行中,obj来自:com.sun.jdi.InvocationException occurred invoking method.

因此,当我们从流中读取数据时会出现一些问题。

请帮助我在这里犯错误

由于

0 个答案:

没有答案