2010-03-19 50 views
5

Tôi đã cài đặt glassfish trên một máy chủ có JMS ConnectionFactory được thiết lập jms/MyConnectionFactory với một loại tài nguyên hoặc javax.jms.ConnectionFactory.Sử dụng Glassfish JMS từ máy khách từ xa

bây giờ tôi muốn truy cập này từ một ứng dụng client trên máy tính địa phương của tôi cho điều này tôi đã điều sau đây:

public static void main(String[] args) { 
     try{ 
      Properties env = new Properties(); 
      env.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory"); 
      env.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming"); 
      env.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl"); 
      env.setProperty("org.omg.CORBA.ORBInitialHost", "10.97.3.74"); 
      env.setProperty("org.omg.CORBA.ORBInitialPort", "3700"); 
      InitialContext initialContext = new InitialContext(env); 
      ConnectionFactory connectionFactory = null; 
      try { 
       connectionFactory = (ConnectionFactory) 
       initialContext.lookup("jms/MyConnectionFactory"); 
      } catch (Exception e) { 
       System.out.println("JNDI API lookup failed: " + e.toString()); 
       e.printStackTrace(); 
       System.exit(1); 
      } 
     }catch(Exception e){ e.printStackTrace(System.err); 
     } 
    } 

Khi tôi chạy khách hàng của tôi tôi nhận được kết quả như sau:

INFO: Using com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate as the delegate 
{org.omg.CORBA.ORBInitialPort=3700, java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory, org.omg.CORBA.ORBInitialHost=10.97.3.74, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} 
19-Mar-2010 16:09:13 org.hibernate.validator.util.Version <clinit> 
INFO: Hibernate Validator bean-validator-3.0-JBoss-4.0.2 
19-Mar-2010 16:09:13 org.hibernate.validator.engine.resolver.DefaultTraversableResolver detectJPA 
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver. 
19-Mar-2010 16:09:13 com.sun.messaging.jms.ra.ResourceAdapter start 
INFO: MQJMSRA_RA1101: SJSMQ JMS Resource Adapter starting: REMOTE 
19-Mar-2010 16:09:13 com.sun.messaging.jms.ra.ResourceAdapter start 
INFO: MQJMSRA_RA1101: SJSMQ JMSRA Started:REMOTE 
19-Mar-2010 16:09:13 com.sun.enterprise.naming.impl.SerialContext lookup 
SEVERE: enterprise_naming.serialctx_communication_exception 
19-Mar-2010 16:09:13 com.sun.enterprise.naming.impl.SerialContext lookup 
SEVERE: 
java.lang.RuntimeException: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: This pool is not bound in JNDI : jms/MyConnectionFactory 
     at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:159) 
     at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304) 
     at com.sun.enterprise.naming.impl.SerialContext.getObjectInstance(SerialContext.java:472) 
     at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:437) 
     at javax.naming.InitialContext.lookup(InitialContext.java:392) 
     at simpleproducerclient.Main.main(Main.java:89) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.glassfish.appclient.client.acc.AppClientContainer.launch(AppClientContainer.java:424) 
     at org.glassfish.appclient.client.AppClientFacade.main(AppClientFacade.java:134) 
Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: This pool is not bound in JNDI : jms/MyConnectionFactory 
     at com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.obtainManagedConnectionFactory(ConnectorConnectionPoolAdminServiceImpl.java:1017) 
     at com.sun.enterprise.connectors.ConnectorRuntime.obtainManagedConnectionFactory(ConnectorRuntime.java:375) 
     at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:124) 
     ... 11 more 
Caused by: javax.naming.NamingException: Lookup failed for '__SYSTEM/pools/jms/MyConnectionFactory' in SerialContext targetHost=localhost,targetPort=3700,orb'sInitialHost=ithfdv01,orb'sInitialPort=3700 [Root exception is javax.naming.NameNotFoundException: pools] 
     at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442) 
     at javax.naming.InitialContext.lookup(InitialContext.java:392) 
     at com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.getConnectorConnectionPool(ConnectorConnectionPoolAdminServiceImpl.java:804) 
     at com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.obtainManagedConnectionFactory(ConnectorConnectionPoolAdminServiceImpl.java:932) 
     ... 13 more 
Caused by: javax.naming.NameNotFoundException: pools 
     at com.sun.enterprise.naming.impl.TransientContext.resolveContext(TransientContext.java:252) 
     at com.sun.enterprise.naming.impl.TransientContext.lookup(TransientContext.java:171) 
     at com.sun.enterprise.naming.impl.TransientContext.lookup(TransientContext.java:172) 
     at com.sun.enterprise.naming.impl.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:58) 
     at com.sun.enterprise.naming.impl.RemoteSerialContextProviderImpl.lookup(RemoteSerialContextProviderImpl.java:89) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:146) 
     at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:176) 
     at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:682) 
     at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:216) 
     at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1841) 
     at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1695) 
     at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1078) 
     at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:221) 
     at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:797) 
     at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:561) 
JNDI API lookup failed: javax.naming.CommunicationException: Communication exception for SerialContext targetHost=10.97.3.74,targetPort=3700,orb'sInitialHost=ithfdv01,orb'sInitialPort=3700 [Root exception is java.lang.RuntimeException: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: This pool is not bound in JNDI : jms/MyConnectionFactory] 
     at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2558) 
     at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:492) 
     at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:528) 
javax.naming.CommunicationException: Communication exception for SerialContext targetHost=10.97.3.74,targetPort=3700,orb'sInitialHost=ithfdv01,orb'sInitialPort=3700 [Root exception is java.lang.RuntimeException: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: This pool is not bound in JNDI : jms/MyConnectionFactory] 
     at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:461) 
     at javax.naming.InitialContext.lookup(InitialContext.java:392) 
     at simpleproducerclient.Main.main(Main.java:89) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.glassfish.appclient.client.acc.AppClientContainer.launch(AppClientContainer.java:424) 
     at org.glassfish.appclient.client.AppClientFacade.main(AppClientFacade.java:134) 
Caused by: java.lang.RuntimeException: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: This pool is not bound in JNDI : jms/MyConnectionFactory 
     at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:159) 
     at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304) 
     at com.sun.enterprise.naming.impl.SerialContext.getObjectInstance(SerialContext.java:472) 
     at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:437) 
     ... 8 more 
Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: This pool is not bound in JNDI : jms/MyConnectionFactory 
     at com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.obtainManagedConnectionFactory(ConnectorConnectionPoolAdminServiceImpl.java:1017) 
     at com.sun.enterprise.connectors.ConnectorRuntime.obtainManagedConnectionFactory(ConnectorRuntime.java:375) 
     at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:124) 
     ... 11 more 
Caused by: javax.naming.NamingException: Lookup failed for '__SYSTEM/pools/jms/MyConnectionFactory' in SerialContext targetHost=localhost,targetPort=3700,orb'sInitialHost=ithfdv01,orb'sInitialPort=3700 [Root exception is javax.naming.NameNotFoundException: pools] 
     at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442) 
     at javax.naming.InitialContext.lookup(InitialContext.java:392) 
     at com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.getConnectorConnectionPool(ConnectorConnectionPoolAdminServiceImpl.java:804) 
     at com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.obtainManagedConnectionFactory(ConnectorConnectionPoolAdminServiceImpl.java:932) 
     ... 13 more 
Caused by: javax.naming.NameNotFoundException: pools 
     at com.sun.enterprise.naming.impl.TransientContext.resolveContext(TransientContext.java:252) 
     at com.sun.enterprise.naming.impl.TransientContext.lookup(TransientContext.java:171) 
     at com.sun.enterprise.naming.impl.TransientContext.lookup(TransientContext.java:172) 
     at com.sun.enterprise.naming.impl.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:58) 
     at com.sun.enterprise.naming.impl.RemoteSerialContextProviderImpl.lookup(RemoteSerialContextProviderImpl.java:89) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:146) 
     at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:176) 
     at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:682) 
     at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:216) 
     at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1841) 
     at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1695) 
     at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1078) 
     at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:221) 
     at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:797) 
     at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:561) 
     at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2558) 
     at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:492) 
     at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:528) 

Tôi đã xem xét một số bài đăng và đã thử một số điều không thành công. Tôi có thể chạy các lệnh sau trên máy chủ của mình:

./asadmin list-jndi-entries 

UserTransaction: com.sun.enterprise.transaction.TransactionNamingProxy$UserTransactionProxy 
java:global: com.sun.enterprise.naming.impl.TransientContext 
jdbc: com.sun.enterprise.naming.impl.TransientContext 
ejb: com.sun.enterprise.naming.impl.TransientContext 
com.sun.enterprise.container.common.spi.util.InjectionManager: com.sun.enterprise.container.common.impl.util.InjectionManagerImpl 
jms: com.sun.enterprise.naming.impl.TransientContext 

Command list-jndi-entries executed successfully. 

./asadmin list-jndi-entries --context jms 

MyTopic: org.glassfish.javaee.services.ResourceProxy 
MyConnectionFactory: org.glassfish.javaee.services.ResourceProxy 
MyQueue: org.glassfish.javaee.services.ResourceProxy 

Command list-jndi-entries executed successfully. 

Bất kỳ trợ giúp nào được đánh giá cao.

Chúc mừng,

James

Trả lời

4
Caused by: javax.naming.NameNotFoundException: pools 

Điều này dường như được gây ra bởi một bug được cố định khá gần đây (ngày 15 tháng 2 năm 2010). Bạn cần nâng cấp lên ít nhất GF v3.0.1 build 05. Hãy thử một lần.

+0

Tôi đã cập nhật thành (GlassFish 3 (build 9)) và vẫn thấy lỗi tương tự. – James

+0

Tôi đã không cập nhật phiên bản thủy tinh địa phương của tôi chỉ có phiên bản máy chủ, khi tôi cập nhật phiên bản cục bộ của mình nó hoạt động với 3.0.1 build 9. Bất kỳ ý tưởng nào khi 3.0.1 sẽ được phát hành? – James

+0

Nó đã được phát hành, bạn thậm chí đang sử dụng xây dựng 9. Bạn không có nghĩa là 3.0.2 hay như vậy? – BalusC

Các vấn đề liên quan