2014-10-31 55 views
1

我寫了一段代碼來連接到TIBCO隊列並獲取客戶數據。但是,在將其投入生產之前,我無法找到一種測試方法。我們能否以某種方式創建虛擬隊列,以便確保我的程序在打包生產之前可以正常工作?用於測試的虛擬TIBCO隊列

這裏是我的代碼..

package GI; 

import javax.jms.JMSSecurityException; 
import javax.naming.InitialContext; 

import javax.jms.Queue; 
import javax.jms.TextMessage; 
import javax.jms.QueueSender; 
import javax.jms.DeliveryMode; 
import javax.jms.QueueSession; 
import javax.jms.QueueConnection; 
import javax.jms.QueueConnectionFactory; 
import javax.jms.QueueReceiver; 

public class Queue 
{ 
    public Queue() 
    { 
     System.err.println("\n------------------------------------------------------------------------"); 
     System.err.println("tibjmsTEQueue SAMPLE"); 
     System.err.println("------------------------------------------------------------------------"); 
    } 

    public String QueueProcess(String XMLRequest, String serverUrl, String userName, String password, String InQueueName) 
    { 
     String [] args = new String[4]; 

     args[0]=serverUrl; 
     args[1]=userName; 
     args[2]=password; 
     args[3]=InQueueName; 

     System.out.println("Server....................... "+serverUrl); 
     System.out.println("User......................... "+userName); 
     System.out.println("InQueue...................... "+InQueueName); 
     System.out.println("------------------------------------------------------------------------\n"); 

     try 
     { 
      tibjmsUtilities.initSSLParams(serverUrl,args); 
     } 
     catch (JMSSecurityException e) 
     { 
      System.err.println("JMSSecurityException: "+e.getMessage()+", provider="+e.getErrorCode()); 
      e.printStackTrace(); 
      System.exit(0); 
     } 

     System.err.println("Starting"); 

     QueueConnection connectionIn = null; 
     try 
     { 
      InitialContext context = new InitialContext(); 

      Queue tibcoQueue = (Queue) context.lookup("queue/queue0"); 

      QueueConnectionFactory factory = new com.tibco.tibjms.TibjmsQueueConnectionFactory(serverUrl); 
      connectionIn = factory.createQueueConnection(userName, password); 
      QueueSession sessionIn = connectionIn.createQueueSession(false,javax.jms.Session.AUTO_ACKNOWLEDGE); 

      QueueSender queueSender = sessionIn.createSender(tibcoQueue); 
      queueSender.setDeliveryMode(DeliveryMode.NON_PERSISTENT); 

      QueueReceiver queueReceiver = sessionIn.createReceiver(tibcoQueue); 

      connectionIn.start(); 

      System.out.println("Connected to Queue..."); 
      System.out.println("XMLRequest: " + XMLRequest); 

      TextMessage sendXMLRequest = sessionIn.createTextMessage(XMLRequest); 

      queueSender.send(sendXMLRequest); 

      System.out.println("sent: " + sendXMLRequest.getText()); 

      TextMessage XMLResponse = (TextMessage) queueReceiver.receive(); 

      System.out.println("received: " + XMLResponse.getText()); 
      return((String) XMLResponse.getText()); 
     } 
     catch(Exception e) 
     { 
      System.err.println("Exitting with Error"); 
      e.printStackTrace(); 
      System.exit(0); 
     } 
     finally 
     { 
      System.err.println("Exitting"); 
      try     {connectionIn.close();} 
      catch(Exception e1) {} 
     } 

     return("Failure"); 
    } 

    public static void main(String args[]) 
    { 
     Queue t = new Queue(); 
    } 
} 

回答

0

這是從來沒有建議在同一EMS短信例如混合生產和非生產業務。這是一個非常冒險的做法,因爲它引入了無意中將非生產流量發送到生產應用程序的可能性。我建議先與您的EMS運營團隊覈對一下,因爲他們很可能會將您指向您可以使用的開發EMS實例。

對於您不希望壓力測試環境的單元和/或集成測試,許多開發人員會在其本地開發工作站上安裝EMS實例。您的EMS運營團隊再次可以向您提供許可證和安裝二進制文件以在本地安裝。

+0

感謝您的回覆。實際上,我現在所做的更多的是製作一個工作原型的興趣項目,只是想測試這段代碼。 – 2014-11-03 11:41:09