- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当我用 Java 编写客户端-服务器聊天程序时遇到 BAD_PARAM 错误。第一个代码段是服务器
//Server.java
try {
ORB orb = ORB.init(args, null);
POA poa = POAHelper.narrow(orb
.resolve_initial_references("RootPOA"));
poa.the_POAManager().activate();
ServerImpl s = new ServerImpl(port);
System.out.println(port);
org.omg.CORBA.Object obj = poa.servant_to_reference(s);
Server r = ServerHelper.narrow(obj);
// get reference to root naming context
org.omg.CORBA.Object ns = orb
.resolve_initial_references("NameService");
NamingContextExt nc = NamingContextExtHelper.narrow(ns);
// bind the Object Reference in Naming
String name = "Chat";
NameComponent path[] = nc.to_name(name);
nc.rebind(path, r);
System.out.println("Waiting for clients ... ");
orb.run();
} catch (Exception e) {
e.printStackTrace();
}
这是我的客户端
//Client.java
try {
ORB orb = ORB.init(args, null);
// get reference to root naming context
org.omg.CORBA.Object ns = orb
.resolve_initial_references("NameService");
NamingContextExt nc = NamingContextExtHelper.narrow(ns);
// lookup name
String name = "Chat";
org.omg.CORBA.Object obj = nc.resolve_str(name);
Client c = ClientHelper.narrow(obj);
} catch (Exception e) {
//System.err.println(e.getMessage());
e.printStackTrace();
}
我已经启动了我的 orbd 和 Server.java。除了客户以外,一切都很好。错误是 org.omg.BAD_PARAM vmcid 0x0 次要代码:0 已完成:否,它发生在 Client c = ClientHelper.narrow(obj);
行我已经为这个错误苦苦挣扎了 3 天。有什么建议来修复它吗?谢谢您,我非常感谢您的帮助!
最佳答案
问题在于您将 Server
对象绑定(bind)到服务器代码中的名称服务中,但随后您的客户端代码尝试将其范围缩小为 Client
类型。这些类型不兼容。
更改您的客户端代码来执行此操作:
Server s = ServerHelper.narrow(obj);
您不需要为客户端和服务器提供两个单独的 IDL 接口(interface)。只需创建一个服务器实现的服务,然后让客户端调用它即可。
关于java - java CORBA 中的 BAD_PARAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19443206/
我正在尝试使用 .ior 文件建立与华为 U2000 NBI corba 的连接以获取警报。我已经将 IDL 文件编译为 Java。下面是我初始化ORB的主要代码 package com.be.u2k
当我用 Java 编写客户端-服务器聊天程序时遇到 BAD_PARAM 错误。第一个代码段是服务器 //Server.java try { ORB orb = ORB.init(arg
最近,我在维护一个非常旧的应用程序的 CORBA 通信过程中遇到了问题。客户端和服务器部分通过CORBA 进行通信。在服务器上客户端的特定函数调用中,我得到以下错误: Not successful c
我现在正在使用 Java/C++ 和 CORBA 开发简单的图形用户界面应用程序。我希望 VirtualBox 上的客户端连接到本地主机上的服务器。当我有一个简单的应用程序时,比如我之前写过的计算器,
我是一名优秀的程序员,十分优秀!