Search code examples
javaspringmavenclassloaderjboss5.x

Spring app unable to find "com.tibco.tibjms.naming.TibjmsInitialContextFactory"


We use maven in house for building the Spring 3.0.X application, so, I've added all the Tibco related jars to the /server/<Profile>/lib folder, in the maven pom.xml file i've added the following change

<dependency>
    <groupId>com.tibco</groupId>
    <artifactId>tibjms</artifactId>
    <scope>provided</scope>
    <version>4.4.1v2</version>
</dependency>

Deployed the war file into jboss 5.1/server/<Profile>/deploy folder.

I get the following error in the deployments, I restarted the server several times, still the spring app is unable to load the classes from the /lib folder of the profile.

Spring jms config.xml

    <?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jms="http://www.springframework.org/schema/jms"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd">

    <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
        <property name="environment">
            <props>
                <prop key="java.naming.factory.initial">
                    initialFactory
                </prop>
                <prop key="java.naming.provider.url">
                    url
                </prop>
            </props>
        </property>
    </bean>

    <bean id="queueConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiTemplate" ref="jndiTemplate" />
        <property name="jndiName"
            value="queueConn" />
    </bean>


    <bean id="listener"
        class="class">
    </bean>

    <jms:listener-container connection-factory="queueConnectionFactory"
        acknowledge="transacted" concurrency="5">
        <jms:listener destination="Outbound.Queue"
            ref="listener" />
    </jms:listener-container>

</beans>

Update: I enabled the jboss class loading, the tibjms classes are being loaded into the memory when I checked the boot.log file. Dont understand why the spring is unable to load the classes from the /lib.


Solution

  • The property file has "" around the class name. removed it, started working.