0

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に置いておきます。それは間違っていますか?それとも別のものであるべきですか?


親切な返信をありがとう。私を混乱させているのは、Spring jar を 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 のスプリング jar

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

4

2 に答える 2

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>

さもないと

ここで参照します。

まだ試してJBoss 6いません。ただし、次の構成がに役立つことを願っていますJBoss 6

ノート:

JBoss 6.0では、アプリケーションが実際に起動する前にコンテナがクラスをロードしないようにするには、次の内容のWEB-INF/jboss-scanning.xmlファイルをアプリケーションアーカイブに追加する必要があります。

構成:/WEB-INF/jboss-scanning.xml

<scanning xmlns="urn:jboss:scanning:1.0"/>
于 2012-10-18T05:55:46.297 に答える
0

サーバーのクラスパスに Spring jar ライブラリが含まれていることを確認してください。Spring 3 では、spring-web.jar

これらのjarがWEB/libにあるかどうかを確認してください

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
于 2012-10-17T19:20:18.240 に答える