Java IDL:servertool不会注册和挂起

时间:2011-10-20 11:56:16

标签: java corba persistent idl

我在Java IDL中运行CORBA Persistent Object实现

,如Java IDL: The "Hello World" Example

我按照上面文章中的确切程序

我使用servertool注册Persistent server,如例子所示。 但当我尝试使用语法注册服务器时,如该文章:

servertool > register -server PersistentServer -applicationName s1 -classpath path_to_server_class_files

我挂起来并没有做任何事情,然后我必须ctrl+c回到正常模式

这可能是什么问题?

2 个答案:

答案 0 :(得分:1)

问题是您的Java JDK安装路径包含空格。

如果您的JDK安装到带有空格的路径,例如“C:\ Program Files \ Java \ jdk1.7.0”,那么您必须使用其绝对路径启动orbd和servertool(在Windows中,您必须使用简写符号)即〜[tilda]):

C:\ Progra~1 \ Java \ jdk1.7.0 \ bin \ orbd -ORBInitialPort 1050 -serverPollingTime 200

C:\ Progra~1 \ Java \ jdk1.7.0 \ bin \ servertool -ORBInitialPort 1050

servertool> register -server PersistentServer -applicationName MyApp -classpath。 (根据需要调整idlj生成的文件的类路径)

在Windows中,您可以使用dir *.* /x

找到短名称路径

如果你使用像%JAVA_HOME%这样的环境变量等于“C:\ Program Files \ Java \ jdk1.7.0”,然后你将它追加到PATH它会工作,你有使用简写符号(使用tilda)即“C:\ Progra~1 \ Java \ jdk1.7.0”

提示 :如果您的JDK安装在没有空格的路径中,例如C:\ Java \ jdk1.7.0那么您可以启动orbd和没有使用绝对路径的servertool它将起作用。

答案 1 :(得分:0)

请阅读Running CORBA Applications以获取完整说明

通过使用'idlj'命令编译IDL文件来创建Java存根和框架类。

  idlj -fall IDLfile.idl

编译源文件

javac IDLserver.java
javac IDLclient.java
or

javac javac *.java IDLmodule/*.java

启动对象请求代理(ORB)守护程序

unix:   orbd -ORBInitialPort 4321 &
windows:    start orbd -ORBInitialPort 4321

在unix上,命令'ps -e'显示分配给orbd的进程号。 kill命令可用于终止进程。

守护程序在运行期间将消息写入子目录orb.db. 调用服务器     unix:java IDLserver -ORBInitialHost localhost -ORBInitialPort 4321&     windows:启动java IDLserver -ORBInitialHost localhost -ORBInitialPort 4321     调用客户端

java IDLclient -ORBInitialHost localhost -ORBInitialPort 4321

默认的ORB初始端口是端口900(只有root可以在solaris上启动它)。