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