2012-02-24 15 views
1

に誰もがリモートのWebLogic JMSサーバに受信/メッセージを送信するためにGrailsの2.xのJMSプラグインを設定していますか?私は運で、このようなresources.groovy設定を試してみた:GrailsのJMSプラグインのWebLogic JMSサーバ

jmsConnectionFactory(InitialContext, [ 
"INITIAL_CONTEXT_FACTORY": "weblogic.jndi.WLInitialContextFactory", 
"PROVIDER_URL": "t3://remote-host:7001", 
"SECURITY_PRINCIPAL": "weblogic", 
"SECURITY_CREDENTIALS": "weblogic"]) 
+0

いくつか詳細を教えてください。スタートアップやランタイム、スタックトレースなどで失敗しますか? – proflux

+0

私が与えた設定は基本的なものではありません.jmsConnectionFactoryが見つからないというJMSプラグインのエラーが出ます。私は、GrailsをWebLogic JMSに接続する例と持っている人を探しています。 –

+0

[this](http://stackoverflow.com/questions/9436137/jms-job-queue-with-grails)の助けがあれば、 –

答えて

0

ない完全な答えと多くのリソースをリモートWebLogic ServerでのGrailsでJMSを送信/受信についてネット上にあるので、私は2〜3年考え出し前は、任意のプラグインを必要とせずにソリューション、作業します。

  1. は、少なくともWeblogic wlthint3client.jarはlibディレクトリにあることを確認してください。 confに/春/ resources.groovyで

    • :サービス/ myListenerService.groovyで

      // Weblogic's JMS setup on Grails 
      jndiTemplate(org.springframework.jndi.JndiTemplate) { 
          environment = [ 
            "java.naming.factory.initial"  : "weblogic.jndi.WLInitialContextFactory", 
            "java.naming.provider.url"  : "t3://host.name.mustbe.same.as.configured.on.server.side:port_number", 
            "java.naming.security.principal" : "wlsadmin", 
            "java.naming.security.credentials": "password" 
          ] 
      } 
      
      
      // 
      // listener 
      // 
      jmsListenerConnectionFactory(org.springframework.jndi.JndiObjectFactoryBean) { 
          jndiTemplate = ref(jndiTemplate) 
          jndiName  = "jms.checkonserver.QueueConnectionFactory" 
      } 
      
      jmsListenerDestinationResolver(org.springframework.jms.support.destination.JndiDestinationResolver) { 
          jndiTemplate = ref(jndiTemplate) 
          cache = false 
      } 
      
      userListenerCredentialsConnectionFactory(org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter){ 
          targetConnectionFactory = ref(jmsListenerConnectionFactory) 
      } 
      
      standardListenerJmsTemplate(org.springframework.jms.core.JmsTemplate) { 
          connectionFactory = ref(userListenerCredentialsConnectionFactory) 
          destinationResolver = ref(jmsListenerDestinationResolver) 
      } 
      
      jmsListenerMessageListener(org.springframework.jms.listener.adapter.MessageListenerAdapter, ref("myListenerService")) { 
          defaultListenerMethod = "onMessage" 
      } 
      
      standardListenerJmsListenerContainer(org.springframework.jms.listener.DefaultMessageListenerContainer) { 
          connectionFactory = ref(jmsListenerConnectionFactory) 
          destinationResolver = ref(jmsListenerDestinationResolver) 
          messageListener = jmsListenerMessageListener 
          destinationName  = "jms.checkonserver.MessagesQueue" 
      } 
      
    • package app 
      
      class MyListenerService { 
      
           static transactional = false 
           static scope = "prototype" 
      
      def onMessage(msg) { 
           log.info "JMS msg received." 
           try { 
            String txtmsg = new String(msg as String) 
            log.info txtmsg 
           } catch (e) { 
            log.error e 
           } 
          } 
      } 
      
    JMS リスナーの設定

  2. confに/春/ resources.groovyで

    • :サービス/ myJmsSenderService.groovyで

       jmsSenderConnectionFactory(org.springframework.jndi.JndiObjectFactoryBean) { 
            jndiTemplate = ref(jndiTemplate) 
            jndiName  = "jms.checkonseerver.QueueConnectionFactory" 
           } 
      
           jmsSenderDestinationResolver(org.springframework.jms.support.destination.JndiDestinationResolver) { 
            jndiTemplate = ref(jndiTemplate) 
            cache = false 
           } 
      
           userSenderCredentialsConnectionFactory(org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter){ 
            targetConnectionFactory = ref(jmsSenderConnectionFactory) 
           } 
      
           standardSenderJmsTemplate(org.springframework.jms.core.JmsTemplate) { 
            connectionFactory = ref(userSenderCredentialsConnectionFactory) // 
            destinationResolver = ref(jmsSenderDestinationResolver) 
           } 
      
    • package app 
      
      import org.springframework.jms.core.MessageCreator 
      
      import javax.jms.JMSException 
      import javax.jms.Message 
      import javax.jms.Session 
      
      class MyJmsSenderService { 
      
          static transactional = false 
          static scope = "prototype" 
      
          def standardSenderJmsTemplate 
      
          def sendMessage(txt) { 
            MessageCreator messageCreator = new MessageCreator() { 
            public Message createMessage(Session session) throws 
            JMSException { 
             return session.createTextMessage(txt) 
            } 
            } 
      
           standardSenderJmsTemplate.send("jms.checkonserver.SendingQueue", messageCreator) 
      
           log.info "JMS message send: ${txt}" 
      
          } 
      } 
      
    JMS 送信者の設定