【问题标题】:Spring app unable to find "com.tibco.tibjms.naming.TibjmsInitialContextFactory"Spring 应用程序无法找到“com.tibco.tibjms.naming.TibjmsInitialContextFactory”
【发布时间】:2016-10-17 23:49:28
【问题描述】:

我们在内部使用 maven 来构建 Spring 3.0.X 应用程序,因此,我已将所有与 Tibco 相关的 jar 添加到 /server/<Profile>/lib 文件夹中,在 maven pom.xml 文件中我添加了以下更改

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

将war文件部署到jboss 5.1/server/&lt;Profile&gt;/deploy文件夹中。

我在部署中遇到以下错误,我重新启动了几次服务器,但 spring 应用仍然无法从配置文件的 /lib 文件夹中加载类。

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>

更新:我启用了 jboss 类加载,当我检查 boot.log 文件时,tibjms 类正在加载到内存中。不明白为什么 spring 无法从 /lib 加载类。

【问题讨论】:

  • 为什么是scope provided? jar 是否已经存在于 jboss lib 中?
  • 我很困惑为什么你会像现在这样摆弄罐子。如果您将提供的范围设置为范围,那么它会告诉 maven 在构建您的战争时不要费心从 repo 中获取它们作为 jboss/tomcat 已经拥有它们的任何东西。因此,在我看来,目前您的问题是为您的应用程序提供服务。你能在应用服务器的任何地方找到这些 jar 包吗?
  • @nuzz 是的,我将 jars 添加到了 /server/&lt;Profile&gt;/lib 文件夹中。我正在做那个“提供”的范围,因为这些罐子已经在服务器 lib 文件夹中可用。我期待 jboss 类加载器为我加载类。
  • @sidgate jar 已经在 jboss 配置文件的 lib 文件夹中提供了
  • @nuzz 我使用设置stackoverflow.com/questions/6690000/… 启用了类加载日志记录,类加载器似乎没有在服务器启动时加载jar。你知道我需要在 jboss 中做些什么来加载 lib 文件夹中的类吗?

标签: java spring maven classloader jboss5.x


【解决方案1】:

属性文件的类名周围有""。删除它,开始工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-18
    • 2022-12-15
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    • 2020-04-17
    • 2020-08-06
    • 1970-01-01
    相关资源
    最近更新 更多