Tibco error: ClassNotFoundException: com.tibco.tibjms.naming.TibjmsInitialContextFactory
-
11-12-2019 - |
Question
I am facing this issue. I tested tibco with below configuration(local tibco) and it works
<jee:jndi-lookup id="connectionFactory" jndi-name="emsConnectionFactory">
<jee:environment>
java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory
java.naming.provider.url=tibjmsnaming://localhost:7222
</jee:environment>
</jee:jndi-lookup>
<jee:jndi-lookup id="queue" jndi-name="emsQueue">
<jee:environment>
java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory
java.naming.provider.url=tibjmsnaming://localhost:7222
</jee:environment>
But when i try to connect to the central tibco(only the provider changed) with below configuration i get classNotFound error
<jee:jndi-lookup id="connectionFactory" jndi-name="XAQueueConnectionFactory">
<jee:environment>
java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory
java.naming.provider.url=tcp://xsdd.xxxxxxxxx.local:8333
</jee:environment>
</jee:jndi-lookup>
<jee:jndi-lookup id="queue" jndi-name="ibalance/iBatch/ReBalances">
<jee:environment>
java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory
java.naming.provider.url=tcp://xxxxxxx.xxxxxxxxxxx.local:8333
</jee:environment>
</jee:jndi-lookup>
The error i am getting is
Caused by: java.lang.ClassNotFoundException: com.tibco.tibjms.naming.TibjmsInitialContextFactory
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:46)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
Any suggestion would be of great help.
Solution
This is clearly a classpath error. Are you running both on your local machine?
If the second one is being run on a server somewhere, ensure the EMS jar libraries are referenced in the classpath. I believe the one you're after is tibjms.jar
.
How you reference the jar file is dependent on your environment and technologies.
OTHER TIPS
You are missing tibjms.jar from the classpath. If any security options on the EMS server are enabled, please make sure you add tibcrypt.jar as well.
- Close the TIBCO designer.
- Open the designer.tra file located in the path C: \ tibco \ designer \ 5.10 \ bin
- Add this path;% TRA_HOME% / lib / TIBCOjms.jar in the final part of ## this will be prepended to tibco.class.path.extended
- Copy the accompanying booklet in the path C: \ tibco \ tra \ 5.10 \ lib
- Ready with this should work, just start the designer and go.
download the jar is TIBCOjms.jar
In my case, issue was very silly. There was a space at the end of class path. i.e, "com.tibco.tibjms.TibjmsQueueConnectionFactory "