`
kungstriving
  • 浏览: 131875 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java RMI调用发生ClassCastException的解决方法

    博客分类:
  • Java
阅读更多

在学习RMI的时候,通过网上资料或者《Java网络编程和分布式计算》经典教程对RMI有了一定的了解。但是前几天在写一个网络应用软件的时候却发生了点问题。

服务器端,客户端都按照RMI规范完成之后,客户端在Naming.lookup()之后,获得的Object转换成接口的时候总是抛出java.lang.ClassCastException $Proxy ... 异常。调试了很长时间,也google了很多东西,但是都没有合适的解决方案。最后还是自力更生,丰衣足食了  

 主要原因:是服务器端的包结构和服务器端的包结构不同,这就造成了实际上你的服务器端的Interface的名字和你客户端的Interface名称不同,所以当然会造成转型异常了。  

解决方法:把自己客户端涉及到RMI部分调整和服务器端完全一致。可能你的系统客户端包为com.xxx.client,而服务器端的包为com.xxx.server。你只需要将服务器端和客户端的包都改成同一个包名即可。例如都改成com.xxx.rmi  

 这样,调用一下看一下,哈哈,是不是没有异常了。就这样了,希望对大家有帮助。

分享到:
评论

相关推荐

    《Java面试手册》.pdf

    - RMI(Remote Method Invocation)是Java远程方法调用,允许分布式环境下的对象交互。 5. Java异常处理 - 异常是程序运行时出现的错误,Java通过try-catch-finally语句块进行异常处理。异常类继承自java.lang....

    weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 类型转换解决办法

    2. **反射调用**:对于 `weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB` 类型的对象,使用 Java 反射机制调用 `getVendorObj()` 方法,该方法返回一个 `oracle.sql.CLOB` 类型的对象。 3. **CLOB 数据读取**:无论是...

    超级有影响力霸气的Java面试题大全文档

    它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是...

    中兴通java程序员面试题(高)

    7. **RMI**:远程方法调用,允许Java对象在不同JVM之间交互。 8. **JNDI**:Java Naming and Directory Interface,用于查找和绑定分布式环境中的对象。 9. **JMS**:Java消息服务,提供异步通信机制。 10. **JTA...

    JAVA基础知识点

    RMI允许在不同JVM上的对象像在同一JVM上一样互相调用对方的方法,这为分布式计算提供了强大的支持。 **应用场景:** - **分布式应用:** RMI非常适合构建分布式应用,特别是当所有的参与者都运行在Java平台上时。 -...

    java技术体系图

    - **可变返回类型**:允许方法根据调用上下文返回不同类型的值。 - **增强循环**:简化了数组或集合的遍历过程。 - **静态导入**:简化代码书写,减少冗余。 - **核心编程**: - **I/O操作**:处理文件读写、...

    java中文帮助文档[归类].pdf

    12. **安全与异常**:如AccessDeniedException、ActivateFailedException和ActivationException,是Java RMI(远程方法调用)中处理安全性和激活问题的异常。 13. **GUI组件**: Adjustable接口和AdjustmentEvent...

    Java习题_异常相关的习题_chap11.pdf

    - 当异常发生时,异常对象会被创建,并且异常的传递是沿着方法调用的堆栈向上进行,直到遇到可以处理该异常的catch块或者到达main方法。 - 如果没有找到任何合适的catch块来处理异常,那么这个异常将传递到上一层...

    Java-异常(习题).doc

    - 异常类 `java.rmi.AlreadyBoundException`,从分类上说,该类属于**已检查**异常,从处理方式上说,对这种异常**进行捕获处理**; - 异常类 `java.util.regex.PatternSyntaxException`,从分类上说,该类属于**未...

    java面试问题汇总(非常全面)

    - **接口**:只能包含常量和抽象方法(Java 8 开始支持默认方法和静态方法);不能包含构造函数或具体实现细节;实现接口的类必须提供接口中所有抽象方法的具体实现,除非它本身也是抽象类。 #### 4. Servlet实例在...

    JBoss Admin Development Guide3.26

    - **使用RMI连接JMX**:通过远程方法调用(RMI)协议来远程访问JMX服务器。 - **使用命令行访问JMX**:提供了命令行工具来管理服务器。 - **使用任何协议连接JMX**:除了RMI外,还可以通过其他协议来访问JMX。 5. ...

Global site tag (gtag.js) - Google Analytics