2015-02-02 1 views
1

Wildfly 8.2.0에서 JMS를 사용하려고합니다. 기본 원격 연결 팩토리를 사용하여 java : jboss/exported/jms/queue/grinderRemote라는 jndi 이름을 가진 GrinderRemoteQueue라는 큐를 생성했습니다. 아래에는 jms 구성을위한 standalone-full.xml 구성 파일의 섹션이 있습니다.JMS + Wildfly 8.2.0 최종 : 다음 키는 커넥터 구성에 유효하지 않습니다. http-upgrade-endpoint

18:23:50,323 INFO [stdout] (default task-2) lookup: jms/GrinderRemoteConnectionFactory success! 
18:23:50,341 INFO [stdout] (default task-2) lookup: java:/jms/queue/grinderRemote success! 
18:23:50,374 ERROR [stderr] (default task-2) javax.jms.JMSRuntimeException: Failed to create session factory 
18:23:50,374 ERROR [stderr] (default task-2) at org.hornetq.jms.client.JmsExceptionUtils.convertToRuntimeException(JmsExceptionUtils.java:86) 
18:23:50,375 ERROR [stderr] (default task-2) at org.hornetq.jms.client.HornetQConnectionFactory.createContext(HornetQConnectionFactory.java:152) 
18:23:50,375 ERROR [stderr] (default task-2) at it.vr.pms.TestJMS.Test(TestJMS.java:62) 
18:23:50,375 ERROR [stderr] (default task-2) at it.vr.pms.Base.doGet(Base.java:81) 
18:23:50,375 ERROR [stderr] (default task-2) at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) 
18:23:50,376 ERROR [stderr] (default task-2) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
18:23:50,376 ERROR [stderr] (default task-2) at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) 
18:23:50,376 ERROR [stderr] (default task-2) at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) 
18:23:50,376 ERROR [stderr] (default task-2) at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 
18:23:50,377 ERROR [stderr] (default task-2) at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 
18:23:50,377 ERROR [stderr] (default task-2) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
18:23:50,377 ERROR [stderr] (default task-2) at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 
18:23:50,378 ERROR [stderr] (default task-2) at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) 
18:23:50,378 ERROR [stderr] (default task-2) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
18:23:50,378 ERROR [stderr] (default task-2) at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) 
18:23:50,379 ERROR [stderr] (default task-2) at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63) 
18:23:50,379 ERROR [stderr] (default task-2) at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) 
18:23:50,379 ERROR [stderr] (default task-2) at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) 
18:23:50,379 ERROR [stderr] (default task-2) at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) 
18:23:50,380 ERROR [stderr] (default task-2) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
18:23:50,380 ERROR [stderr] (default task-2) at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 
18:23:50,380 ERROR [stderr] (default task-2) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
18:23:50,381 ERROR [stderr] (default task-2) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
18:23:50,381 ERROR [stderr] (default task-2) at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261) 
18:23:50,381 ERROR [stderr] (default task-2) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:247) 
18:23:50,381 ERROR [stderr] (default task-2) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:76) 
18:23:50,382 ERROR [stderr] (default task-2) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:166) 
18:23:50,382 ERROR [stderr] (default task-2) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:197) 
18:23:50,382 ERROR [stderr] (default task-2) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:759) 
18:23:50,382 ERROR [stderr] (default task-2) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
18:23:50,383 ERROR [stderr] (default task-2) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
18:23:50,383 ERROR [stderr] (default task-2) at java.lang.Thread.run(Unknown Source) 
18:23:50,383 ERROR [stderr] (default task-2) Caused by: javax.jms.JMSException: Failed to create session factory 
18:23:50,384 ERROR [stderr] (default task-2) at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:676) 
18:23:50,384 ERROR [stderr] (default task-2) at org.hornetq.jms.client.HornetQConnectionFactory.createContext(HornetQConnectionFactory.java:142) 
18:23:50,384 ERROR [stderr] (default task-2) ... 30 more 
18:23:50,385 ERROR [stderr] (default task-2) Caused by: java.lang.IllegalStateException: The following keys are invalid for configuring a connector: http-upgrade-endpoint 
18:23:50,385 ERROR [stderr] (default task-2) at org.hornetq.core.client.impl.ClientSessionFactoryImpl.checkTransportKeys(ClientSessionFactoryImpl.java:1507) 
18:23:50,385 ERROR [stderr] (default task-2) at org.hornetq.core.client.impl.ClientSessionFactoryImpl.<init>(ClientSessionFactoryImpl.java:207) 
18:23:50,385 ERROR [stderr] (default task-2) at org.hornetq.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:867) 
18:23:50,386 ERROR [stderr] (default task-2) at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:672) 

I :이 출력을 가지고이 클래스를 실행

import java.util.Properties; 
import javax.jms.Connection; 
import javax.jms.Destination; 
import javax.jms.JMSContext; 
import javax.jms.JMSException; 
import javax.jms.MessageConsumer; 
import javax.jms.MessageProducer; 
import javax.jms.Session; 
import javax.jms.TextMessage; 
import javax.naming.Context; 
import javax.naming.InitialContext; 
import javax.naming.NamingException; 


import org.hornetq.jms.client.HornetQConnectionFactory; 


public class TestJMS { 




    public void Test() throws NamingException, JMSException { 


     HornetQConnectionFactory connectionFactory = null; 
     Connection connection = null; 
     Session session = null; 
     MessageProducer producer = null; 
     MessageConsumer consumer = null; 
     Destination destination = null; 
     TextMessage message = null; 
     Context context = null; 


     try { 
      final Properties env = new Properties(); 
      env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); 
      env.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming"); 
      env.put(Context.PROVIDER_URL, "http-remoting://localhost:8080"); 
      env.put(Context.SECURITY_PRINCIPAL, "jmsuser"); 
      env.put(Context.SECURITY_CREDENTIALS, "*********"); 
      context = new InitialContext(env); 


      connectionFactory = (HornetQConnectionFactory) context.lookup("jms/RemoteConnectionFactory"); 


      System.out.println("lookup: jms/GrinderRemoteConnectionFactory success!"); 


      destination = (Destination) context.lookup("jms/queue/grinderRemote"); 


      System.out.println("lookup: java:/jms/queue/grinderRemote success!"); 


      JMSContext createContext = connectionFactory.createContext("jmsuser", "Logitech550!", JMSContext.AUTO_ACKNOWLEDGE); 


      System.out.println("connectionFactory.createContext success!"); 


      createContext.createConsumer(destination); 


      System.out.println("createContext.createConsumer success!"); 


      connection = connectionFactory.createConnection("jmsuser", "your password"); 


      System.out.println("connectionFactory.createConnection success!"); 


      session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 
      producer = session.createProducer(destination); 


      System.out.println("session.createProducer success!"); 


      connection.start(); 


      int count = Integer.parseInt("1"); 
      String content = "Hello, World!"; 


      // Send the specified number of messages 
      for (int i = 0; i < count; i++) { 
       message = session.createTextMessage(content); 
       producer.send(message); 


       System.out.println("Message sent successfully: " + message); 
      } 


     } catch (Exception e) { 


      e.printStackTrace(); 


     } finally { 
      if (context != null) { 
       context.close(); 
      } 


      // closing the connection takes care of the session, producer, and consumer 
      if (connection != null) { 
       connection.close(); 
      } 
     } 

    } 


} 

: 시험에 대한

<subsystem xmlns="urn:jboss:domain:messaging:2.0"> 
     <hornetq-server> 
      <journal-file-size>102400</journal-file-size> 

      <connectors> 
       <http-connector name="http-connector" socket-binding="http"> 
        <param key="http-upgrade-endpoint" value="http-acceptor"/> 
       </http-connector> 
       <http-connector name="http-connector-throughput" socket-binding="http"> 
        <param key="http-upgrade-endpoint" value="http-acceptor-throughput"/> 
        <param key="batch-delay" value="50"/> 
        <param key="host" value="127.0.0.1"/> 
        <param key="port" value="5445"/> 
       </http-connector> 
       <in-vm-connector name="in-vm" server-id="0"/> 
      </connectors> 

      <acceptors> 
       <http-acceptor http-listener="default" name="http-acceptor"/> 
       <http-acceptor http-listener="default" name="http-acceptor-throughput"> 
        <param key="batch-delay" value="50"/> 
        <param key="direct-deliver" value="false"/> 
        <param key="host" value="127.0.0.1"/> 
        <param key="port" value="5445"/> 
       </http-acceptor> 
       <in-vm-acceptor name="in-vm" server-id="0"/> 
      </acceptors> 

      <security-settings> 
       <security-setting match="#"> 
        <permission type="send" roles="guest"/> 
        <permission type="consume" roles="guest"/> 
        <permission type="createNonDurableQueue" roles="guest"/> 
        <permission type="deleteNonDurableQueue" roles="guest"/> 
       </security-setting> 
      </security-settings> 

      <address-settings> 
       <address-setting match="#"> 
        <dead-letter-address>jms.queue.DLQ</dead-letter-address> 
        <expiry-address>jms.queue.ExpiryQueue</expiry-address> 
        <max-size-bytes>10485760</max-size-bytes> 
        <page-size-bytes>2097152</page-size-bytes> 
        <message-counter-history-day-limit>10</message-counter-history-day-limit> 
       </address-setting> 
      </address-settings> 

      <jms-connection-factories> 
       <connection-factory name="InVmConnectionFactory"> 
        <connectors> 
         <connector-ref connector-name="in-vm"/> 
        </connectors> 
        <entries> 
         <entry name="java:/ConnectionFactory"/> 
        </entries> 
       </connection-factory> 
       <connection-factory name="RemoteConnectionFactory"> 
        <connectors> 
         <connector-ref connector-name="http-connector"/> 
        </connectors> 
        <entries> 
         <entry name="java:jboss/exported/jms/RemoteConnectionFactory"/> 
        </entries> 
       </connection-factory> 
       <pooled-connection-factory name="hornetq-ra"> 
        <transaction mode="xa"/> 
        <connectors> 
         <connector-ref connector-name="in-vm"/> 
        </connectors> 
        <entries> 
         <entry name="java:/JmsXA"/> 
         <entry name="java:jboss/DefaultJMSConnectionFactory"/> 
        </entries> 
       </pooled-connection-factory> 
      </jms-connection-factories> 

      <jms-destinations> 
       <jms-queue name="ExpiryQueue"> 
        <entry name="java:/jms/queue/ExpiryQueue"/> 
       </jms-queue> 
       <jms-queue name="DLQ"> 
        <entry name="java:/jms/queue/DLQ"/> 
       </jms-queue> 
       <jms-queue name="GrinderRemoteQueue"> 
        <entry name="java:jboss/exported/jms/queue/grinderRemote"/> 
        <durable>true</durable> 
       </jms-queue> 
      </jms-destinations> 
     </hornetq-server> 
    </subsystem> 

이 구성은 나는 다음과 같은 클래스를 사용하여, 이클립스 루나의 새로운 동적 웹 프로젝트를 생성 주된 문제는 java.lang.IllegalStateException: The following keys are invalid for configuring a connector: http-upgrade-endpoint라고 생각하지만, 내가 틀린 부분을 이해할 수는 없습니다.

미리 답변 해 주셔서 감사합니다.

엔리코

+0

JNDI 조회를 위해 항목에서 java를 제거 할 수 있습니다. 또한 java : 항목을 제거하여 해결 된 유사한 문제에 직면했습니다. – ManojP

+0

안녕하세요, 제안 주셔서 감사합니다! 요소에서 매개 변수를 제거하여 문제를 해결합니다. 이제 코드가 메시지를 대기열로 보낼 수 있습니다. –

답변

0

업데이트 클라이언트의 모든 라이브러리는 제이보스 라이브러리하지만를 사용하지 jbossAS ' -hornet (모듈) -jboss 클라이언트 (가 빈에서의 클라이언트/디렉토리) -remoting (모듈) - etc (module)

관련 문제