2

2つの子モジュールを持つマルチモジュールMavenアプリがあります。1つのモジュールはWebサービス用で、もう1つはこれらのサービスを使用するシミュレーターです。

昨日開始したアプリケーションをデプロイしたいときに、Tomcat7から次のエラーが発生するという奇妙な問題があります。

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate NamespaceHandler for namespace [http://www.springframework.org/schema/context]
Offending resource: ServletContext resource [/WEB-INF/application-context.xml]

そして、私のapplication-context.xmlsの上部セクションは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <context:component-scan base-package="com.company">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

Springコンテキストの名前空間ハンドラーが見つからないということです。しかし、私は次のように私の親pom.xmlにその依存関係を持っています:

 <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>3.1.2.RELEASE</version>
    </dependency>

また、TomcatのWebアプリには、アプリケーションのlibフォルダーにspring-contextjarも含まれていることがわかります。私は2時間グーグルをしているので、助けていただければ幸いです。

ありがとう

4

2 に答える 2

1

Spring名前空間ハンドラーについて明示的に説明しているmaven-shade-pluginドキュメントのこの部分を見てください。

于 2012-08-17T13:33:24.287 に答える
0

pom.xmlでエラーを見つけました。将来、また遭遇する可能性があるため、自分で書き留めています:)

私はこのようなpom.xmlを持っていました

       <dependency>
            <groupId>org.jvnet.jax-ws-commons.spring</groupId>
            <artifactId>jaxws-spring</artifactId>
            <version>1.8</version>
        </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${springFrameworkVersion}</version>
    </dependency>

したがって、jaxws-springはすでにSpring2.0に依存しています。これにより、MavenはjarSpring-2.0を戦争に持ち込むことができます。だから私はある種のライブラリの衝突を起こしていました。

以下のように除外すると、問題は解決しました。

<dependency>
            <groupId>org.jvnet.jax-ws-commons.spring</groupId>
            <artifactId>jaxws-spring</artifactId>
            <version>1.8</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
于 2013-08-12T11:47:16.667 に答える