簡體   English   中英

CORBA orb.resolve_initial_references(“ ORBPolicyManager”); 不起作用

[英]CORBA orb.resolve_initial_references(“ORBPolicyManager”); not Working

當我的項目到達org.omg.CORBA.Object obj = orb.string_to_object(stringTarget);時,我的項目崩潰了。 並拋出一個異常,說:“ org.omg.CORBA.COMM_FAILURE:vmcid:SUN次要代碼:201已完成:否”。 任何可能導致此錯誤的提示。 服務器在線,我可以Ping它。 我的IOR文件已更新。

  Properties props = System.getProperties();

        props.put("org.openorb.PI.FeatureInitializerClass.org.openorb.orb.messaging.MessagingInitializer","");
        props.put("ORBClass", "org.openorb.orb.core.ORB");
        props.put("iiop.port", ParameterUtil.getInstance().getOrbClientPort());
        props.put("iiop.useNativeLibrary", "true");

        // Inicializa o ORB
        if (orb == null) {
            synchronized (semaforo) {
                if (orb == null)
                    orb = ORB.init(args, props);
            }
            logger.info("ORB inicializado.");
        }



                    FileInputStream file = new FileInputStream(Constantes.IOR_FILE_PATH);

        BufferedReader myInput = new BufferedReader(new java.io.InputStreamReader(file));
        String stringTarget =  myInput.readLine();
        logger.debug("IOR used is :" + stringTarget);

        org.omg.CORBA.Object obj = orb.string_to_object(stringTarget);

        // Definição de politica de timeout no ORB
        try {
            PolicyManager opm = (PolicyManager) orb.resolve_initial_references("ORBPolicyManager");
            Any time_any = orb.create_any();
            // convert from 1ms to 100ns
            org.omg.TimeBase.TimeTHelper.insert(time_any, orbTimeout * 1000 * 10);
            Policy[] policies = new Policy[1];
            policies[0] = orb.create_policy(org.omg.Messaging.RELATIVE_RT_TIMEOUT_POLICY_TYPE.value, time_any);
            opm.set_policy_overrides(policies,
                    SetOverrideType.ADD_OVERRIDE);
        } catch (InvalidName invname_ex) {
            logger.error("ORBPolicyManager wasn't found! (" + invname_ex + ")");
        } catch (PolicyError pol_ex) {
            logger.error("A policy error occured: " + pol_ex + " - Reason Code: " + pol_ex.reason, pol_ex);
        } catch (InvalidPolicies invpol_ex) {
            logger.error("An invalid policy has been specified: " + invpol_ex);
        }

這是完整的堆棧跟蹤

 com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl <init>
AVISO: "IOP00410201: (COMM_FAILURE) Connection failure: socketType: IIOP_CLEAR_TEXT; hostname: 10.40.56.100; port: 900"
org.omg.CORBA.COMM_FAILURE:   vmcid: SUN  minor code: 201  completed: No
    at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2200)
    at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2221)
    at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:205)
    at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:218)
    at com.sun.corba.se.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:101)
    at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:171)
    at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:118)
    at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.invoke(BootstrapResolverImpl.java:74)
    at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.resolve(BootstrapResolverImpl.java:107)
    at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:22)
    at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:22)
    at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:22)
    at com.sun.corba.se.impl.orb.ORBImpl.resolve_initial_references(ORBImpl.java:1151)
    at com.gvt.oss.nec.pool.net.dslam.ZhoneGateway.init(ZhoneGateway.java:232)
    at com.gvt.oss.nec.pool.net.dslam.ZhoneGateway.<init>(ZhoneGateway.java:194)
    at com.gvt.oss.nec.pool.factory.GatewayFactory.getSession(GatewayFactory.java:12)
    at com.gvt.oss.nec.pool.facade.SessionExecutionFacade.openSession(SessionExecutionFacade.java:27)
    at corba.Corba.main(Corba.java:27)
Caused by: java.net.ConnectException: Connection refused: connect

    at sun.nio.ch.Net.connect(Native Method)
    at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:500)
    at java.nio.channels.SocketChannel.open(SocketChannel.java:146)
    at com.sun.corba.se.impl.transport.DefaultSocketFactoryImpl.createSocket(DefaultSocketFactoryImpl.java:60)
    at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:188)
    ... 15 more
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at com.gvt.oss.nec.pool.util.Datasource.loadDataSource(Datasource.java:54)
    at com.gvt.oss.nec.pool.util.Datasource.getConnection(Datasource.java:73)
    at com.gvt.oss.nec.pool.business.ManagerAudit.<init>(ManagerAudit.java:46)
    at com.gvt.oss.nec.pool.business.ManagerAudit.getInstance(ManagerAudit.java:65)
    at com.gvt.oss.nec.pool.facade.SessionExecutionFacade.corbaExecCommandSession(SessionExecutionFacade.java:105)
    at corba.Corba.main(Corba.java:28)
15/05/2014 10:03:18 corba.Corba main
GRAVE: null
com.gvt.oss.nec.pool.exception.RemotePoolException: Erro geral ao processar requisição de comando Corba: null
    at com.gvt.oss.nec.pool.facade.SessionExecutionFacade.corbaExecCommandSession(SessionExecutionFacade.java:102)
at corba.Corba.main(Corba.java:28)

您需要定義此屬性

java.naming.factory.initial

根據錯誤消息

需要在環境或系統屬性中或作為applet參數或在應用程序資源文件中指定類名稱:java.naming.factory.initial

  1. 運行orb start orbd -ORBInitialPort 1050tnameserv -ORBInitialPort 1050
  2. 使用以下命令運行類客戶端和服務器: -ORBInitialPort 1050 -ORBInitialHost localhost

一個類似的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM