我现在正在研究Java / C++和CORBA中的简单gui应用。我希望VirtualBox上的客户端连接到localhost上的服务器。当我有一个简单的应用程序(如计算程序)时,我之前就写过它就很好了。但是,当要运行需要一些参数args java java -cp选项的客户端时,我会出错。 (当我在本地主机上同时拥有客户端和服务器时,没有这种问题!)我在VirtualBox上使用Win XP,在localhost上使用Ubuntu。

我的错误:

WARNING: "IOP00100007: (BAD_PARAM) string_to_object conversion failed due to bad
 scheme name"
org.omg.CORBA.BAD_PARAM:   vmcid: OMG  minor code: 7  completed: No
        at com.sun.corba.se.impl.logging.OMGSystemException.soBadSchemeName(Unkn
own Source)
        at com.sun.corba.se.impl.logging.OMGSystemException.soBadSchemeName(Unkn
own Source)
        at com.sun.corba.se.impl.resolver.INSURLOperationImpl.operate(Unknown So
urce)
        at com.sun.corba.se.impl.resolver.ORBInitRefResolverImpl.resolve(Unknown
 Source)
        at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(Unknown
Source)
        at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(Unknown
Source)
        at com.sun.corba.se.impl.orb.ORBImpl.resolve_initial_references(Unknown
Source)
        at ClientConnection.connect(ClientConnection.java:57)
        at Client.main(Client.java:295)

Exception in thread "main" org.omg.CORBA.BAD_PARAM:   vmcid: OMG  minor code: 7
 completed: No
        at com.sun.corba.se.impl.logging.OMGSystemException.soBadSchemeName(Unkn
own Source)
        at com.sun.corba.se.impl.logging.OMGSystemException.soBadSchemeName(Unkn
own Source)
        at com.sun.corba.se.impl.resolver.INSURLOperationImpl.operate(Unknown So
urce)
        at com.sun.corba.se.impl.resolver.ORBInitRefResolverImpl.resolve(Unknown
 Source)
        at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(Unknown
Source)
        at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(Unknown
Source)
        at com.sun.corba.se.impl.orb.ORBImpl.resolve_initial_references(Unknown
Source)
        at ClientConnection.connect(ClientConnection.java:57)
        at Client.main(Client.java:295)
make[1]: *** [run] Error 1

ClientConnection.java:57是一行objRef = clientORB.resolve_initial_references("NameService");Client.java:295是一行:ClientConnection.connect(args);connect方法只是普通的客户端连接corba代码。

我跑了我的例子:

1)C:\Temp\Client>java -cp .:../Dir1:../Dir2 Client -ORBInitRef NameService=corbaloc::192.168.56.1:2809/NameServiceError: Could not find or load main class Client,所以它甚至都没有运行..

2)在Makefile的帮助下:
HOST = 192.168.56.1
PORT = 2809
NAMESERVICE = NameService

run:
    java -cp .:../Dir1:../Dir2 Client -ORBInitRef NameService=corbaloc::$(HOST):$(PORT)/$(NAMESERVICE)

通过键入make run,然后我得到了我先前发布的错误。怎么了?我的意思是,一个简单的代码可以正常工作,但是gui版本不想... -cp选项是否存在问题?我无法更改应用程序的目录树。

最佳答案

我个人看到您有两个问题。

  • 类路径。您是否有一个文件Client.class.Dir1中名为Dir2的文件。如果不是,请查找并将其目录添加到类路径中。如果在,请提供更多信息
  • CORBA事物;我希望看到您的Orb.init();通话。其他一切看起来都不错。
  • 09-30 15:35
    查看更多