用于监听器的WEB / lib中的Jboss6.1 ClassNotFound

时间:2012-10-17 02:06:31

标签: spring java-ee jboss

我使用jboss6.1。当我尝试部署Web应用程序时,它会说在尝试加载spring时找不到类。

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

错误是

Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationListener

我把弹簧放在WEB / lib中。那是错的吗?或者应该是别的什么?


感谢您的回复。令我困惑的是我把弹簧罐放在我的webapp的WEB / lib文件夹中。还不够吗?


以下是web.xml和jar。 (我把所有的东西都抓进了spring3.1的dist文件夹中)

但我想也许是因为我使用jboss并且它有一些特别的东西?我谷歌一些后期类加载器,但不明白。


的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="CMDB_WS_HOST" version="3.0">
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <session-config>
        <session-timeout>99999999</session-timeout>
    </session-config>
    <context-param> 
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/beans.xml</param-value>
    </context-param>
    <servlet>
        <servlet-name>CXFServlet</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
    <listener>
        <listener-class>com.inspur.cmdb.system.StartupListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
</web-app>

web / lib中的弹簧罐

org.springframework.aop-3.1.0.M2.jar

org.springframework.asm-3.1.0.M2.jar

org.springframework.aspects-3.1.0.M2.jar

org.springframework.beans-3.1.0.M2.jar

org.springframework.context.support-3.1.0.M2.jar

org.springframework.context-3.1.0.M2.jar

org.springframework.core-3.1.0.M2.jar

org.springframework.expression-3.1.0.M2.jar

org.springframework.instrument.tomcat-3.1.0.M2.jar

org.springframework.instrument-3.1.0.M2.jar

org.springframework.jdbc-3.1.0.M2.jar

org.springframework.jms-3.1.0.M2.jar

org.springframework.orm-3.1.0.M2.jar

org.springframework.oxm-3.1.0.M2.jar

org.springframework.test-3.1.0.M2.jar

org.springframework.transaction-3.1.0.M2.jar

org.springframework.web.portlet-3.1.0.M2.jar

org.springframework.web.servlet-3.1.0.M2.jar

org.springframework.web.struts-3.1.0.M2.jar

org.springframework.web-3.1.0.M2.jar

2 个答案:

答案 0 :(得分:0)

确保您的服务器类路径包含Spring jar库。在Spring 3中,spring-web.jar

检查WEB / lib中是否有这些jar

commons-logging-1.1.1.jar
jstl-1.2.jar
spring-asm-3.0.3.RELEASE.jar
spring-beans-3.0.3.RELEASE.jar
spring-context-3.0.3.RELEASE.jar
spring-core-3.0.3.RELEASE.jar
spring-expression-3.0.3.RELEASE.jar
spring-web-3.0.3.RELEASE.jar
spring-webmvc-3.0.3.RELEASE.jar

答案 1 :(得分:0)

JBoss 7即可。classloading效果。

配置:/WEB-INF/jboss-web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss-web PUBLIC
    "-//JBoss//DTD Web Application 4.2//EN"
    "http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">
<jboss-web>
    <class-loading java2ClassLoadingCompliance="false">
        <loader-repository>
                   myapp:loader=anyUniqueName
            <loader-repository-config>java2ParentDelegation=false</loader-repository-config>
        </loader-repository>
    </class-loading>
</jboss-web>

,否则

我引用here

我还没有尝试使用JBoss 6。但是,我希望,以下配置对JBoss 6有用。

注意:

在JBoss 6.0上,为避免容器在应用程序实际启动之前加载类,需要将WEB-INF / jboss-scanning.xml文件添加到应用程序存档中,其中包含以下内容:

配置:/WEB-INF/jboss-scanning.xml

<scanning xmlns="urn:jboss:scanning:1.0"/>