在Impatience的Web Services搞得我万念俱灰的时候, 我被逼急了. 所谓"穷则思变", 我不得不考虑先放弃使用Web Services的方法返回的文件, 而是直接使用EJB RMI.
RMI需要注意的问题就是你所返回的对象必须是继承了java.io.Serializable接口. 但是我起初使用的数据格式javax.activation.DataHandler和java.io.File恰好都是不满足条件的. 其中前者直接报ClassCastException错误; 后者更加奇怪, 我在客户端可以得到一个File对象, 但是这个对象中只返回了一个服务器端这个文件的相对路径! 真的是很奇怪. 到现在我还没有找到解释.
总之, 以后在使用RMI时, 一定记住"所返回的对象必须是继承了java.io.Serializable接口"这个问题!