2015-12-31 33 views
0

我能夠在開發中成功部署我的應用程序。我正在使用Spring JMS模板與Tibco Client進行通信,並且在weblogic中,我已經建立了一個帶有目標隊列的外部服務器,作爲Tibco隊列和連接Tibco連接工廠的連接工廠。我的JNDI初始上下文工廠:是tcp:// name:port ...我能夠發佈消息並收聽它。沒有問題。部署到其他服務器給出ClassNotFoundException TIBCO JMS

問題: 當部署到QA(從開發戰爭取並放入QA)和在部署過程中,我們得到這個

Caused by: javax.naming.NoInitialContextException: Cannot instantiate class: com.tibco.tibjms.naming.TibjmsInitialContextFactory [Root exception is javax.naming.NoInitialContextException: Cannot instantiate class: com.tibco.tibjms.naming.TibjmsInitialContextFactory [Root exception is java.lang.ClassNotFoundException: com.tibco.tibjms.naming.TibjmsInitialContextFactory]] 
    at weblogic.utils.StackTraceDisabled.unknownMethod() 
Caused by: javax.naming.NoInitialContextException: Cannot instantiate class: com.tibco.tibjms.naming.TibjmsInitialContextFactory [Root exception is java.lang.ClassNotFoundException: com.tibco.tibjms.naming.TibjmsInitialContextFactory] 
    ... 1 more 
Caused by: java.lang.ClassNotFoundException: com.tibco.tibjms.naming.TibjmsInitialContextFactory 
    ... 1 more 

任何建議可能什麼錯?

編輯:人們已經建議,這是一個明確的類路徑錯誤。但在開發中,我沒有在weblogic中的啓動服務器的類路徑中包含任何東西。

+0

添加'tibjms.jar'你** ** CLASSPATH。 – Rao

回答

0

我沒有添加外部服務器到weblogic,而是使用JMS模板並設置下面的屬性。

@Bean 
    public JndiTemplate jndiTemplate() throws JMSException { 
     JndiTemplate jndiTemplate = new JndiTemplate(); 
     Properties jndiProps = new Properties(); 
     Properties props = System.getProperties(); 
     String env = props.getProperty("cwt.env"); 
     jndiProps.setProperty("java.naming.factory.initial", environment.getProperty("ems.contextFactory")); 
     jndiProps.setProperty("java.naming.security.principal", environment.getProperty("java.naming.security.principal")); 
     jndiProps.setProperty("java.naming.security.credentials", environment.getProperty("java.naming.security.credentials")); 
     jndiProps.setProperty("java.naming.provider.url", environment.getProperty("tibco.ems.namingUrl")); 

     jndiTemplate.setEnvironment(jndiProps); 
     return jndiTemplate; 
    } 

爲.properties文件放在這個

ems.contextFactory=com.tibco.tibjms.naming.TibjmsInitialContextFactory 

此外,POM加tibjms依賴。

0

您需要TibjmsInitialContextFactory Jar才能使上述代碼正常工作。

下面是Maven依賴的情況下,你使用Maven項目:

<dependency> 
    <groupId>com.tibco</groupId> 
    <artifactId>tibjms</artifactId> 
    <version>8.3</version> 
</dependency> 
<dependency> 
    <groupId>com.tibco</groupId> 
    <artifactId>tibcrypt</artifactId> 
    <version>8.3</version> 
</dependency>