在XStream中重载类加载

时间:2012-05-30 10:05:00

标签: xml classloader xstream netbeans-platform

我正在NetBeans平台应用程序中实现保存/加载。我正在使用XStream序列化为XML。

但我有反序列化的问题。当我使用ObjectInputStream时,我以这种方式重新加载它:

public class NBSystemClassLoaderObjectInputStream extends ObjectInputStream
{
    public NBSystemClassLoaderObjectInputStream(InputStream in) throws IOException
    {
        super(in);
    }

    @Override
    public Class resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException
    {
        try
        {
            ClassLoader currentTccl = Thread.currentThread().getContextClassLoader();
            return currentTccl.loadClass(desc.getName());
        } catch (Exception e)
        {
        }
        return super.resolveClass(desc);
    }
}

因此,它将使用NB平台功能来查找课程。如何以相同的方式覆盖XStream类加载?

1 个答案:

答案 0 :(得分:0)

XStream有两个有用的实例方法:getClassLoader和setClassLoader。最后一个可用于为XStream实例提供所需的ClassLoader