我在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
回到正常模式
这可能是什么问题?
答案 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上启动它)。