2017-02-13 5 views
0

У меня есть веб-сервер GlassFish 4.0, установленный на Azure Windows VM, который должен использоваться в качестве брокера сообщений JMS.GlassFish на Azure Windows VM - Ошибка подключения

На GlassFish У меня есть 2 ресурса:
Factory Connection: GFConnectionFactory, типа javax.jms.TopicConnectionFactory
Назначение: myTopic, типа javax.jms.Topic

На Группа сетевой безопасности для моей VM у меня есть следующие входящие правила: NSG inbound rules

Когда я начинаю VM + Glassfish и попытаться для поиска темы я получаю следующую ошибку:

org.omg.CORBA.COMM_FAILURE: FINE: 00410001: Connection failure: socketType: IIOP_CLEAR_TEXT; hostname: localhost; port: 3700 vmcid: OMG minor code: 1 completed: No 
    at com.sun.proxy.$Proxy17.connectFailure(Unknown Source) 
    at com.sun.corba.ee.impl.transport.ConnectionImpl.<init>(ConnectionImpl.java:253) 
    at com.sun.corba.ee.impl.transport.ConnectionImpl.<init>(ConnectionImpl.java:276) 
    at com.sun.corba.ee.impl.transport.ContactInfoImpl.createConnection(ContactInfoImpl.java:129) 
    at com.sun.corba.ee.impl.protocol.ClientRequestDispatcherImpl.beginRequest(ClientRequestDispatcherImpl.java:243) 
    at com.sun.corba.ee.impl.protocol.ClientDelegateImpl.request(ClientDelegateImpl.java:227) 
    at com.sun.corba.ee.impl.protocol.ClientDelegateImpl.is_a(ClientDelegateImpl.java:392) 
    at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:130) 
    at org.omg.CosNaming.NamingContextHelper.narrow(NamingContextHelper.java:69) 
    at com.sun.enterprise.naming.impl.SerialContext$ProviderCacheKey.getNameService(SerialContext.java:1205) 
    at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:393) 
    at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:329) 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:477) 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:438) 
    at javax.naming.InitialContext.lookup(InitialContext.java:417) 
    at gla.prisoft.monitor.PSatMonitor.main(PSatMonitor.java:45) 
Caused by: java.lang.RuntimeException: java.net.ConnectException: Connection refused: connect 
    at org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:344) 
    at com.sun.corba.ee.impl.transport.ConnectionImpl.<init>(ConnectionImpl.java:250) 
... 14 more 
Caused by: java.net.ConnectException: Connection refused: connect 
    at sun.nio.ch.Net.connect0(Native Method) 
    at sun.nio.ch.Net.connect(Net.java:454) 
    at sun.nio.ch.Net.connect(Net.java:446) 
    at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:648) 
    at com.sun.corba.ee.impl.misc.ORBUtility.openSocketChannel(ORBUtility.java:110) 
    at org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:329) 
... 15 more 
44445 +16410617451515053691368888

Вот код, а также:

public static Context getInitialContext() throws NamingException{ 
     Properties properties = new Properties(); 
     properties.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory"); 
     properties.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming"); 
     //properties.setProperty("java.naming.provider.url", "iiop://localhost:3700"); 
     //properties.setProperty("java.naming.provider.url", "iiop://13.90.159.219:3700"); 
     properties.setProperty("java.naming.provider.url", "13.90.159.219:3700"); 
//  properties.setProperty("org.omg.CORBA.ORBInitialHost", "13.90.159.219"); 
//  properties.setProperty("org.omg.CORBA.ORBInitialPort", "3700"); 
     return new InitialContext(properties); 
    } 
public static void main(String []args) throws NamingException{ 
     String topicname = "myTopic"; 
     Context initialContext = getInitialContext(); 
     topic = (Topic)initialContext.lookup(topicname); 
     jmsContext = ((ConnectionFactory)initialContext.lookup("GFConnectionFactory")).createContext(); 

Я не понимаю, почему он до сих пор пытается подключиться к локальным вместо IP, который я указал.

Это проблема с конфигурацией виртуальной машины (я попытался открыть все порты, а также отключить брандмауэр и т. Д.). Я могу успешно подключиться из браузера на моем локальном компьютере через http://13.90.159.219:3700, а также с помощью telnet 13.90. 159,219 3700 "от cmd.

Я также пробовал задавать тему как «corbaname: iiop: host: port # a/b/name».

Любая помощь o идей будет высоко оценена!

ответ

0

Как я уже сказал, некоторые должности, требуемые для GlassFish, не были разрешены в NSG, если вы открыли все порты и отключили брандмауэр (я думаю, что брандмауэр, о котором вы говорили, находится в Windows), то работа подключения.

Мое предложение состоит в том, что вы можете попробовать использовать команду jps & netstat на Azure VM, как показано ниже, чтобы открыть все порты, используемые в GlassFish, а затем, чтобы эти порты для входящих подключений в NSG & брандмауэра Windows.

  1. Использование команды jps на CMD, чтобы перечислить весь процесс Java идентификатор, как LIST 1.
  2. Использование команды netstat -apn для перечисления всех портов & PID из LISTEN как LIST 2.

Затем выяснить эти PID, которые будут перечислены в обоих LIST 1 & LIST 2 и разрешить их в NSG & брандмауэра Windows.

+0

Спасибо за совет, к сожалению, это не помогло :(должно быть, что-то от стеклянной рыбы – TemN

Смежные вопросы