关于J2EE对象传输的问题?(150分)

  • 主题发起人 主题发起人 zhfhq
  • 开始时间 开始时间
Z

zhfhq

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在做的毕业设计遇到这样的问题:
我现在有一个EJB实体Bean,他是把数据库中的信息转化为一个Xml文件,然后把这个xml文件
作为一个对象传输到客户端,在实体bean中的代码如下:
public java.util.Collection getFile()
{
java.util.Collection c=new ArrayList();
FileReader fin=null;
try
{
File f=new File("c://dbxml.xml");
fin=new XmlFileReader(f);
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
if(fin==null) System.out.println("fin is null");
c.add(fin);
return c;
}
其中XmlFileReader是我定义的一个序列化的类:
public class XmlFileReader extends FileReader implements java.io.Serializable
{
public XmlFileReader(File file) throws FileNotFoundException
{
super(file);
}
public String toString()
{
return "这是一个在对象间传输xml文件的Serializ 类";
}
}
但是在客户端调用这个Remote方法如下:
Collection test=(Collection)connBean.getFile();
出现如下错误:
org.omg.CORBA.MARSHAL: Could not allocate instance of class graduated_project.XmlFileReader minor code: 0 completed: No
我不知出现在那里,我只是想把EJB生成的xML文件传输到客户端而已,而我的在客户端就可以重新建立
这个文件,读取它?
是不是我的思路出现问题,请各位帮个忙,帮我参谋参谋!

 
只有只包含简单类型和极少数几个对象类型(如String)的类可以
只申明实现序列化接口而不必实现序列化的方法外,
其它类型必须自己实现序列化和反序列化的方法。
 
请给我具体的解释一下,就这个问题你可以结合得给我解释一下。
 
不好意思,我虽然曾经碰到这样的情况,
但基于偷懒的原因,我从来没有写过一个
自己实现序列化的类,
每次都用传递简单类型的办法绕过去了。
一般java的书上都会有介绍的。
你仔细翻翻书。当然,你得找一本高级点的参考书才行,
入门级的书上是肯定不会有详细说明的。
 
试一下把graduated_project.XmlFileReader打包到客户端里面
 
JJams_King好久没看到你了啊。
 
小猪:
不好意思,最近东奔西跑的,上网少了
 
TO JJams_Kings:
试了,也不行
 
试一下不让XmlFileReader extends FileReader,因为望文生义总觉得FileReader不大可
能Serialize,可以先让他extends别的类如String试一下Serialize是不是有问题。
暂时还没想到更好的方法找到问题。
 
你为什么不直接传一个xml的字符串呢?这就不会碰到序列化的问题了。
 
多人接受答案了。
 
后退
顶部