【问题标题】:Start enterprise application client outside Netbeans在 Netbeans 之外启动企业应用程序客户端
【发布时间】:2011-05-20 17:41:00
【问题描述】:

我创建了简单的企业应用程序。我有 ejb、war 和 app-client。我可以使用 Netbeans 部署和运行它。但是我需要在 Netbeans 之外部署和启动它。 我还可以获取 .ear 文件并使用管理控制台部署它。但是我也以某种方式启动了一个应用程序客户端。 我搜索了有关它的信息,我得到:http://docs.sun.com/app/docs/doc/821-1750/beaem?l=en&a=view

所以我尝试在控制台中输入命令: appclient -client RoadRunnerClient.jar

但是我得到了异常:

org.omg.CORBA.COMM_FAILURE:vmcid:SUN 次要代码:201 已完成:否 在 com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:3431) 在 com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:3452) 在 com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:256) 在 com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:269) 在 com.sun.corba.ee.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:125) 在 com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:188) 在 com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:186) 在 com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:352) 在 org.omg.CORBA.portable.ObjectImpl._is_a(未知来源) 在 org.omg.CosNaming.NamingContextHelper.narrow(未知来源) 在 com.sun.enterprise.naming.impl.SerialContext.narrowProvider(SerialContext.java:355) 在 com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:327) 在 com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:271) 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:430) 在 javax.naming.InitialContext.lookup(未知来源) 在 com.sun.ejb.EjbNamingReferenceManagerImpl.resolveEjbReference(EjbNamingReferenceManagerImpl.java:169) 在 com.sun.enterprise.container.common.impl.ComponentEnvManagerImpl$EjbReferenceProxy.create(ComponentEnvManagerImpl.java:1040) 在 com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:688) 在 com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:657) 在 com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:148) 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:428) 在 javax.naming.InitialContext.lookup(未知来源) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:513) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:384) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.injectClass(InjectionManagerImpl.java:210) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.injectClass(InjectionManagerImpl.java:202) 在 org.glassfish.appclient.client.acc.AppClientContainer$ClientMainClassSetting.getClientMainClass(AppClientContainer.java:599) 在 org.glassfish.appclient.client.acc.AppClientContainer.getMainMethod(AppClientContainer.java:498) 在 org.glassfish.appclient.client.acc.AppClientContainer.completePreparation(AppClientContainer.java:397) 在 org.glassfish.appclient.client.acc.AppClientContainer.prepare(AppClientContainer.java:311) 在 org.glassfish.appclient.client.AppClientFacade.prepareACC(AppClientFacade.java:264) 在 org.glassfish.appclient.client.acc.agent.AppClientContainerAgent.premain(AppClientContainerAgent.java:75) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在 java.lang.reflect.Method.invoke(未知来源) 在 sun.instrument.InstrumentationImpl.loadClassAndStartAgent(未知来源) 在 sun.instrument.InstrumentationImpl.loadClassAndCallPremain(未知来源) 引起:java.lang.RuntimeException:java.net.ConnectException:连接被拒绝:连接 在 org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:340) 在 com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:239) ... 35 更多 引起:java.net.ConnectException:连接被拒绝:连接 在 sun.nio.ch.Net.connect(本机方法) 在 sun.nio.ch.SocketChannelImpl.connect(未知来源) 在 com.sun.corba.ee.impl.orbutil.ORBUtility.openSocketChannel(ORBUtility.java:106) 在 org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:325) ... 36 更多 com.sun.enterprise.container.common.spi.util.InjectionException: 尝试注入远程 ejb-ref 名称=roadrunner.Main/bean,Remote 3.x 接口=common.NewSessionBeanLocal,ejb-link=RoadR 的异常 unner-ejb.jar#NewSessionBean,lookup=null,mappedName=,jndi-name=java:global/RoadRunner/RoadRunner-ejb/NewSessionBean!common.NewSessionBeanLocal,refType=Session 进入类 roadrunner.Main 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:614) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:384) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.injectClass(InjectionManagerImpl.java:210) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.injectClass(InjectionManagerImpl.java:202) 在 org.glassfish.appclient.client.acc.AppClientContainer$ClientMainClassSetting.getClientMainClass(AppClientContainer.java:599) 在 org.glassfish.appclient.client.acc.AppClientContainer.getMainMethod(AppClientContainer.java:498) 在 org.glassfish.appclient.client.acc.AppClientContainer.completePreparation(AppClientContainer.java:397) 在 org.glassfish.appclient.client.acc.AppClientContainer.prepare(AppClientContainer.java:311) 在 org.glassfish.appclient.client.AppClientFacade.prepareACC(AppClientFacade.java:264) 在 org.glassfish.appclient.client.acc.agent.AppClientContainerAgent.premain(AppClientContainerAgent.java:75) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在 java.lang.reflect.Method.invoke(未知来源) 在 sun.instrument.InstrumentationImpl.loadClassAndStartAgent(未知来源) 在 sun.instrument.InstrumentationImpl.loadClassAndCallPremain(未知来源) 原因:javax.naming.NamingException:在 SerialContext targetHost=localhost,targetPort=3700,orb'sInitialHost=localhost,orb'sInitialPort=3700 根异常是 javax.naming.NamingException: Exception resolve Ejb for 'Remote ejb-ref name=roadrunner.Main/bean,Remote 3.x interface =common.NewSessionBeanLocal,ejb-link=RoadRunner-ejb.jar#NewSe ssionBean,lookup=null,mappedName=,jndi-name=java:global/RoadRunner/RoadRunner-ejb/NewSessionBean!common.NewSessionBeanLocal,refType=Session' 。用于 loo 的实际(可能是内部)远程 JNDI 名称 kup 是 'java:global/RoadRunner/RoadRunner-ejb/NewSessionBean!common.NewSessionBeanLocal' [根异常是 javax.naming.NamingException: Lookup failed for 'java:global/RoadRunner/RoadRunner-ejb/NewSe ssionBean!common.NewSessionBeanLocal' in SerialContext targetHost=localhost,targetPort=3700,orb'sInitialHost=localhost,orb'sInitialPort=3700 [根异常是 javax.naming.NamingException: 无法 获取 SerialContextProvider for SerialContext targetHost=localhost,targetPort=3700,orb'sInitialHost=localhost,orb'sInitialPort=3700 [根异常是 org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor 代码:201 完成:否]]]] 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442) 在 javax.naming.InitialContext.lookup(未知来源) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:513) ... 15 更多 引起:javax.naming.NamingException:异常解析 Ejb for 'Remote ejb-ref name=roadrunner.Main/bean,Remote 3.x interface =common.NewSessionBeanLocal,ejb-link=RoadRunner-ejb.jar#NewSessionBe an,lookup=null,mappedName=,jndi-name=java:global/RoadRunner/RoadRunner-ejb/NewSessionBean!common.NewSessionBeanLocal,refType=Session' 。用于查找的实际(可能是内部)远程 JNDI 名称是 'java:global/RoadRunner/RoadRunner-ejb/NewSessionBean!common.NewSessionBeanLocal' [根异常是 javax.naming.NamingException: 查找 'java:global/RoadRunner/RoadRunner-ejb/NewSessionBe 失败 an!common.NewSessionBeanLocal' in SerialContext targetHost=localhost,targetPort=3700,orb'sInitialHost=localhost,orb'sInitialPort=3700 [根异常是 javax.naming.NamingException: 无法获取 SerialContextProvider for SerialContext targetHost=localhost,targetPort=3700,orb'sInitialHost=localhost,orb'sInitialPort=3700 [根异常是 org.omg.CORBA.COMM_FAILURE:vmcid:SUN 次要代码: 201完成:否]]] 在 com.sun.ejb.EjbNamingReferenceManagerImpl.resolveEjbReference(EjbNamingReferenceManagerImpl.java:174) 在 com.sun.enterprise.container.common.impl.ComponentEnvManagerImpl$EjbReferenceProxy.create(ComponentEnvManagerImpl.java:1040) 在 com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:688) 在 com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:657) 在 com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:148) 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:428) ... 17 更多 原因:javax.naming.NamingException:在 SerialContext targetHost=localhost,targetPort=3700,orb 中查找 'java:global/RoadRunner/RoadRunner-ejb/NewSessionBean!common.NewSessionBeanLocal' 失败 InitialHost=localhost,orb'sInitialPort=3700 [根异常是 javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext targetHost=localhost,targetPort=3700,orb'sInitial Host=localhost,orb'sInitialPort=3700 [根异常是 org.omg.CORBA.COMM_FAILURE:vmcid:SUN 次要代码:201 已完成:否]] 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442) 在 javax.naming.InitialContext.lookup(未知来源) 在 com.sun.ejb.EjbNamingReferenceManagerImpl.resolveEjbReference(EjbNamingReferenceManagerImpl.java:169) ... 22 更多 引起:javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext targetHost=localhost,targetPort=3700,orb'sInitialHost=localhost,orb'sInitialPort=3700 [根异常 是 org.omg.CORBA.COMM_FAILURE:vmcid:SUN 次要代码:201 已完成:否] 在 com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:276) 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:430) ... 24 更多 引起:org.omg.CORBA.COMM_FAILURE:vmcid:SUN 次要代码:201 已完成:否 在 com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:3431) 在 com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:3452) 在 com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:256) 在 com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:269) 在 com.sun.corba.ee.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:125) 在 com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:188) 在 com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:186) 在 com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:352) 在 org.omg.CORBA.portable.ObjectImpl._is_a(未知来源) 在 org.omg.CosNaming.NamingContextHelper.narrow(未知来源) 在 com.sun.enterprise.naming.impl.SerialContext.narrowProvider(SerialContext.java:355) 在 com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:327) 在 com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:271) ... 25 更多 引起:java.lang.RuntimeException:java.net.ConnectException:连接被拒绝:连接 在 org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:340) 在 com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:239) ... 35 更多 引起:java.net.ConnectException:连接被拒绝:连接 在 sun.nio.ch.Net.connect(本机方法) 在 sun.nio.ch.SocketChannelImpl.connect(未知来源) 在 com.sun.corba.ee.impl.orbutil.ORBUtility.openSocketChannel(ORBUtility.java:106) 在 org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:325) ... 36 更多

>

我还尝试在管理控制台的应用程序 RoadRunner 中启用 Java Web Start。 然后下载并运行,然后我得到: 例外:

com.sun.deploy.net.FailedDownloadException:无法加载资源:[localhost]/_JWSappclient/_system/_dyn/_system_s1as.jnlp 在 com.sun.deploy.net.DownloadEngine.actionDownload(未知来源) 在 com.sun.deploy.net.DownloadEngine.getCacheEntry(未知来源) 在 com.sun.deploy.net.DownloadEngine.getCacheEntry(未知来源) 在 com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(未知来源) 在 com.sun.deploy.net.DownloadEngine.getCachedFile(未知来源) 在 com.sun.javaws.LaunchDownload.downloadExtensionsHelper(未知来源) 在 com.sun.javaws.LaunchDownload.downloadExtensions(未知来源) 在 com.sun.javaws.Launcher.prepareLaunchFile(未知来源) 在 com.sun.javaws.Launcher.prepareAllResources(未知来源) 在 com.sun.javaws.Launcher.prepareToLaunch(未知来源) 在 com.sun.javaws.Launcher.prepareToLaunch(未知来源) 在 com.sun.javaws.Launcher.launch(未知来源) 在 com.sun.javaws.Main.launchApp(未知来源) 在 com.sun.javaws.Main.continueInSecureThread(未知来源) 在 com.sun.javaws.Main$1.run(未知来源) 在 java.lang.Thread.run(Unknown Source)

和包装异常:

java.io.FileNotFoundException: [localhost]/_JWSappclient/_system/_dyn/_system_s1as.jnlp 在 sun.reflect.GeneratedConstructorAccessor1.newInstance(未知来源) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源) 在 java.lang.reflect.Constructor.newInstance(未知来源) 在 sun.net.www.protocol.http.HttpURLConnection$6.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 sun.net.www.protocol.http.HttpURLConnection.getChainedException(未知来源) 在 sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知来源) 在 com.sun.deploy.net.BasicHttpRequest.doRequest(未知来源) 在 com.sun.deploy.net.BasicHttpRequest.doRequest(未知来源) 在 com.sun.deploy.net.BasicHttpRequest.doGetRequest(未知来源) 在 com.sun.deploy.net.DownloadEngine.actionDownload(未知来源) 在 com.sun.deploy.net.DownloadEngine.getCacheEntry(未知来源) 在 com.sun.deploy.net.DownloadEngine.getCacheEntry(未知来源) 在 com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(未知来源) 在 com.sun.deploy.net.DownloadEngine.getCachedFile(未知来源) 在 com.sun.javaws.LaunchDownload.downloadExtensionsHelper(未知来源) 在 com.sun.javaws.LaunchDownload.downloadExtensions(未知来源) 在 com.sun.javaws.Launcher.prepareLaunchFile(未知来源) 在 com.sun.javaws.Launcher.prepareAllResources(未知来源) 在 com.sun.javaws.Launcher.prepareToLaunch(未知来源) 在 com.sun.javaws.Launcher.prepareToLaunch(未知来源) 在 com.sun.javaws.Launcher.launch(未知来源) 在 com.sun.javaws.Main.launchApp(未知来源) 在 com.sun.javaws.Main.continueInSecureThread(未知来源) 在 com.sun.javaws.Main$1.run(未知来源) 在 java.lang.Thread.run(未知来源) 引起:java.io.FileNotFoundException: [localhost]/_JWSappclient/_system/_dyn/_system_s1as.jnlp 在 sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知来源) 在 java.net.HttpURLConnection.getResponseCode(未知来源) ... 19 更多

我不知道接下来会发生什么?

【问题讨论】:

    标签: java jakarta-ee


    【解决方案1】:

    我不得不更改用于连接的端口:

    appclient -client RoadRunnerClient.jar -targetserver localhost:[端口]

    我必须在管理控制台中查看我需要使用哪个端口: ORB -> IIOP 监听器

    【讨论】:

      【解决方案2】:

      Netbeans 6.8 与集成的 Personal Glassfish v3 服务器似乎存在配置问题。服务器默认在 40833 安装其 IIOP 服务,但 JNDI 的默认 IIOP 是 3700。因此您会收到错误消息:

      javax.naming.NamingException: Lookup failed for 'java:global/RoadRunner/RoadRunner-ejb/NewSessionBean!common.NewSessionBeanLocal' in SerialContext targetHost=localhost,targetPort=3700,orb's InitialHost=localhost,orb'sInitialPort=3700 [Root exception is javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext targetHost=localhost,targetPort=3700,orb'sInitial Host=localhost,orb'sInitialPort=3700 [Root exception is org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No]] 
      

      解决方案是在您的 JNDI 上下文查找中添加一些代码。通常你可能会说:

      Context ctx = new InitialContext();
      



      而是执行以下操作:

      Properties jndiProps = new Properties();
                  jndiProps.put("java.naming.factory.initial", "com.sun.enterprise.naming.impl.SerialInitContextFactory");
                  jndiProps.put("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
                  jndiProps.put("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
                  jndiProps.put("java.naming.provider.url", "iiop://localhost:40833");
                  jndiProps.setProperty("org.omg.CORBA.ORBInitialHost", "127.0.0.1");
                  jndiProps.setProperty("org.omg.CORBA.ORBInitialPort", "40833");
      
      InitialContext ctx = new InitialContext(jndiProps);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-05
        相关资源
        最近更新 更多