Posted by:an350901450

Posted on:2008-12-30 14:44

请教一个问题

我的IDL文件:

module anyM{

interface anyI{

any print();

};

};

module personS

{

struct person{

wstring name;

wstring sex;

};

};

我用的是java 与corba 编译

服务器实现端:

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;

}

}

服务端代码:

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 里面的,这种命名方式不会出错能正常运行

但当我使用

#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绑订 命名服务,在启动客户端的时候就报错了,报如下错误

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)

谁能帮我解决下,谢谢了

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

  1. java 实现文件下载保存框_Java开发网 - 任何类型的文件下载时都会弹出文件保存框的实现(原创)...

    于 2002-12-12 11:09 :):):)任何类型的文件下载时都会弹出文件保存框的实现:(:(:( 简介: 从事WEB程序设计的朋友一定都遇到过这种情况吧,对于一些操作系统可以识别的文件类型如 ...

  2. java 获取网络带宽_Java开发网 - 一个测网络延迟和带宽的程序,发10M的数据有问题...

    我的想法是客户端发10M的string给服务器,服务器把收到的数据返回给客户端, 客户端记下发送的时刻和收完数据的时刻,两者相减再除2就是传输用的时间. 发1M没有问题,现在要发10M,就循环10次, ...

  3. java servlet 获取mac地址_Java开发网 - 请教大家几个关于servlet取ip和mac地址的问题~~!...

    //Java获得CPU序列号和网卡Mac地址 /* 利用Runtime call操作系统的命令,具体的命令取决于不同的操作系统,注意不要调用Runtime.getRuntime().exec(Stri ...

  4. java反编译的语句_Java开发网 - 请教,java反编译的问题

    Posted by:tool Posted on:2004-12-31 06:39 有synthetic标记的field和method是class内部使用的,正常的源代码里不会出现synthetic ...

  5. java添加关闭窗口事件_Java开发网 - 如何给JInternalFrame类的窗口添加关闭事件?...

    Posted by:shsen Posted on:2003-05-16 16:26 不太清楚怎么写啊,看看我的代码: public class DealInternalFrame extends J ...

  6. java at发短信_Java开发网 - 通过at指令怎样发送短信????

    Posted by:tiantao78 Posted on:2004-05-26 14:04 九十年代初,AT命令仅被用于modem操作.由于没有控制移动电话文本消息的先例,因此开发了一种叫SMS B ...

  7. python mysql驱动写入datetime类型的数据_解决python写入mysql中datetime类型遇到的问题...

    刚开始使用python,还不太熟练,遇到一个datetime数据类型的问题: 在mysql数据库中,有一个datetime类型的字段用于存储记录的日期时间值.python程序中有对应的一个dateti ...

  8. java工作流 数据库设计_Java开发网

    于 2007-12-06 16:10 基于JGRAHP的工作流模型设计器 JWFD v0.9 comsci@163.com QQ: 784092877 群:7428804 简介 JDK1.4以上 运行 ...

  9. java操作mysql临时表_Java开发网 - 系统临时表使用问题

    Posted by:hzxl Posted on:2003-08-31 18:14 系统临时表的使用: 在一些程序中,我们需要一些仅仅在程序中使用的临时表,但是程序结束后就不再使用,数据库系统对这些应 ...

最新文章

  1. UI培训分享:学UI设计需要知道哪些事情?
  2. shell中复制粘贴随笔
  3. 极简数据分析实操指南(上)
  4. 模型摆完pose怎么对称_糖分过浓警告!108个情侣写真pose,太好拍了!
  5. 10个常用的Python图像处理工具,非常全了
  6. xgboost python windows编译问题
  7. 连接堡垒机出现java环境_Java 8:长期支持的堡垒
  8. 斌伯的博客园Blog开张大吉
  9. 坑哭了!老牌教育机构也崩盘,疑失联跑路,学员却还得继续还贷
  10. java : JSR107缓存规范
  11. mssql 无法启动调试器 数据为空_Windows无法启动:如何利用PE拯救桌面重要数据?...
  12. Microsoft Sql Server 2008 R2 Express 下载地址推荐
  13. typroa设置字体的颜色
  14. Ease睡眠APP竞品分析报告
  15. 图像处理ORL--训练集及测试集建立--Matlab实现
  16. 来了来了,2020 首场 Meetup ,可!
  17. 计算机桌面右键新建展不开,Win10右键新建不见了怎么办?Win10电脑桌面右键新建没有了解决方法...
  18. MASM的Hello World
  19. 基于FPGA的嵌入式图像处理笔记——图像增强的特例(图像反转)
  20. 拼多多关键词的排名是怎么查?拼多多排名规则

热门文章

  1. 速度优化_网站打开速度慢?如何优化?
  2. C++学习笔记:(一)面向对象 类与对象
  3. POJ 1185 炮兵阵地
  4. Leecode240. 搜索二维矩阵 II——Leecode每日一题系列
  5. 【简便解法】1090 危险品装箱 (25分)_33行代码AC
  6. Dev C++ 无法调试问题的解决——小白也能看懂!
  7. 简便解法:1004 成绩排名 (20分)
  8. 百度api语音识别一直“无内容”_PHP开发语音识别功能
  9. python文件无法关闭_Python脚本无法正常终止
  10. Invalid bound statement (not found)