日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java有any类型吗_Java开发网 - 一个关于CORBA中any类型的问题

發(fā)布時(shí)間:2024/1/23 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java有any类型吗_Java开发网 - 一个关于CORBA中any类型的问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Posted by:an350901450

Posted on:2008-12-30 14:44

請(qǐng)教一個(gè)問(wèn)題

我的IDL文件:

module anyM{

interface anyI{

any print();

};

};

module personS

{

struct person{

wstring name;

wstring sex;

};

};

我用的是java 與corba 編譯

服務(wù)器實(shí)現(xiàn)端:

public class AnyIImpl extends anyIPOA {

public Any print() {

Any a = org.omg.CORBA.ORB.init().create_any();

person ps =new person();

ps.name="張三";

ps.sex="男";

personHelper.insert(a,ps);

return a;

}

}

服務(wù)端代碼:

public class Server

{

public static void main( String[] args )

{

org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null);

try

{

org.omg.PortableServer.POA poa =

org.omg.PortableServer.POAHelper.narrow(orb.resolve_initial_references("RootPOA"));

poa.the_POAManager().activate();

org.omg.CORBA.Object o = poa.servant_to_reference(new AnyIImpl());

if( args.length == 1 )

{

// write the object reference to args[0]

PrintWriter ps = new PrintWriter(new FileOutputStream(new File( args[0] )));

ps.println( orb.object_to_string( o ) );

ps.close();

}

else

{

// register server with naming context

/*NamingContextExt nc = NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService"));*/

NamingContextExt nc = NamingContextExtHelper.narrow(orb

.string_to_object("corbaloc::192.168.0.151:5055/NameService"));

nc.bind( nc.to_name("AnyServer.service"), o);

}

}

catch ( Exception e )

{

e.printStackTrace();

}

orb.run();

}

}

我的客戶端:

public class Client

{

public static void main( String[] args )

{

try

{

org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null);

// get hold of the naming service

/*NamingContextExt nc =

NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService"));*/

NamingContextExt nc = NamingContextExtHelper.narrow(orb

.string_to_object("corbaloc::192.168.0.151:5055/NameService"));

System.out.println("nc: "+nc);

anyI s =

anyIHelper.narrow(nc.resolve(nc.to_name("AnyServer.service")));

System.out.println(nc.resolve(nc.to_name("AnyServer.service")));

// create a new any

Any a = org.omg.CORBA.ORB.init().create_any();

System.out.print("Passing a Wstring...");

person pp=personHelper.extract(s.print());

System.out.println("name: "+pp.name);

System.out.println("sex: "+pp.sex);

// System.out.println(s.print().extract_wstring());

//System.out.println("Any.kind: " + a.type().kind().value() );

orb.shutdown(true);

}

catch ( Exception e)

{

e.printStackTrace();

}

}

}

如果我在我的配置文件中用

# are handled properly and cause no harm!

#ORBInitRef.NameService=corbaloc::160.45.110.41:38693/StandardNS/NameServer-POA/_root

#ORBInitRef.NameService=file:/c:/NS_Ref

ORBInitRef.NameService=file:/e:/workspace/any/NS_Ref

。。。。。。。。

上面這種方式 把IOR 寫到文件NS_Ref 里面的,這種命名方式不會(huì)出錯(cuò)能正常運(yùn)行

但當(dāng)我使用

#ORBInitRef.NameService=corbaloc::160.45.110.41:38693/StandardNS/NameServer-POA/_root

#ORBInitRef.NameService=file:/c:/NS_Ref

ORBInitRef.NameService=corbaloc::192.168.0.151:5055/NameService

。。。。。。。

這中IP綁訂 命名服務(wù),在啟動(dòng)客戶端的時(shí)候就報(bào)錯(cuò)了,報(bào)如下錯(cuò)誤

Passing a Wstring...org.omg.CORBA.UNKNOWN: ----------BEGIN server-side stack trace----------

org.omg.CORBA.UNKNOWN: vmcid: SUN minor code: 202 completed: Maybe

at com.sun.corba.se.impl.logging.ORBUtilSystemException.runtimeexception(ORBUtilSystemException.java:8365)

at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.convertThrowableToSystemException(CorbaMessageMediatorImpl.java:1918)

at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleThrowableDuringServerDispatch(CorbaMessageMediatorImpl.java:1868)

at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleThrowableDuringServerDispatch(CorbaMessageMediatorImpl.java:1821)

at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:258)

at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1680)

at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1540)

at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:922)

at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:181)

at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:694)

at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:451)

at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1187)

at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:417)

Caused by: java.lang.NullPointerException

at com.sun.corba.se.impl.corba.AnyImpl.write_value(AnyImpl.java:579)

at com.sun.corba.se.impl.encoding.CDROutputStream_1_0.write_any(CDROutputStream_1_0.java:585)

at com.sun.corba.se.impl.encoding.CDROutputStream.write_any(CDROutputStream.java:202)

at anyM.anyIPOA._invoke(anyIPOA.java:43)

at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:637)

at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:189)

... 8 more

----------END server-side stack trace---------- vmcid: SUN minor code: 202 completed: Maybe

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:494)

at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.getSystemException(MessageBase.java:902)

at com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:99)

at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(CorbaMessageMediatorImpl.java:572)

at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(CorbaClientRequestDispatcherImpl.java:430)

at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:326)

at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:129)

at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)

at anyM._anyIStub.print(_anyIStub.java:32)

at anyM.Client.main(Client.java:44)

誰(shuí)能幫我解決下,謝謝了

總結(jié)

以上是生活随笔為你收集整理的java有any类型吗_Java开发网 - 一个关于CORBA中any类型的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。