一般我们知道在JAVA程序中可以用ObjectOutputStream类来传送对象,在网络上更加显示了其的功能强大,最近在做一个网络对战平台,其间需要很多传送对象的地方,开始并没太在意,但在开发中遇到后,却让我困惑不已,从客户端传往服务器端的对象,被服务器端接收读取后,却报了ClassNotFoundException异常,难道是我没初始化?检查了所有代码,找不到原因,也请同学,朋友帮我看了代码,都找不到原因,一个偶然的机会,发现了服务器端报出的异常中出现了包名(两天后才注意到的),注意到了在服务器端的.class文件放置与客户端的不一致,于是将传送的类在客户端的路径记下,也将服务器端的相应的类的路径改为与客户端一致,问题总算解决了,希望这两天的困惑对大家又用吧。。。。。。
开始的时候所传送类在:
服务器端打包:package com..cz;
客户端打包:packjage com.cxy;
更改后所传送的类在:
服务器端打包:package com..cxy;
客户端打包:package com..cxy;
希望实现一个Applet与另外一个Applet进行通讯时,必须用getAppletContext()方法先取得另外一个Applet的句柄,再用getAplplet(name)方法取得Applet,具体代码实例如下:
AppletContext ac = getAppletContext();
Applet applet = ac.getContext(“other”);
TextArea text = (TextArea)applet.getComponent(2);
Text.append(“good luck”+”\n”);
其中other是另外一个Applet的名字:
<html>
<applet code = “applet.java” width=”300” height=”200” name=”other”>
</applet>
</html>
而getComponent(2)中的参数“2”是指添加到Applet中的组件的次序(从1开始);
这样我们就能操纵另外一个Applet中的组件了。
2005年12月18日