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 minor code: 0 completed: No であり、行 Client c = ClientHelper.narrow(obj); で発生します。
私はこのバグに3日間苦労しています。それを修正するための提案はありますか?ありがとう、私はあなたの助けに本当に感謝しています!