2016-10-23 10 views
0

私はアノテーション駆動型の設定でSpringブートアプリケーションを生成しました。Springブートでweb.xmlがスローされましたXMLスキーマ名前空間用のSpring NamespaceHandlerが見つかりません

しかし、私は既にXMLセキュリティを構成するXMLファイルを持っているので、いくつかのSpring Securityをxml構成で構成したかったのです。

だから私は作成したweb.xmlファイル:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 



</web-app> 

と私が得る

@SpringBootApplication 
@ImportResource("classpath:web.xml") 
public class Application extends WebMvcConfigurerAdapter { 

    public static void main(String[] args) { 
     SpringApplication.run(new Class[] { Application.class, WebAppInitializer.class }, args); 
    } 
} 

そして、私の@SpringBootApplicationクラスに@ImportResource("classpath:web.xml")を追加しました:

2016-10- 23 13:01:52.888 ERROR 9120 --- [メイン] osboot.SpringApplication:アプリケーションの起動に失敗しました

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: 設定問題: XMLスキーマの名前空間の春NamespaceHandlerを見つけることができません[http://java.sun.com/xml/ns/javaee]攻撃元 リソース:クラスパスリソース[web.xmlファイル]

なにが問題ですか?

答えて

1

web.xmlはスプリングビーン設定ファイルではないため、スプリングビーン設定に含めないでください(@ImportResource("classpath:web.xml")を使用しないでください)!

  • web.xmlは、サーブレットコンテナ(たとえば、tomcat)をコンフィグレーションすることです。
  • 春の豆xmlファイルは、だから、両者が異なっている春

を構成することです。

スプリング@ImportResourceアノテーションはスプリングビーンの設定をインポートするためのものですが、serveltコンテナの設定用ではありません。

+0

[OK]を私はアノテーションソリューションに慣れているので、明らかに私はいくつかのギャップがあります。ですから、どうすればweb.xmlのフィルタを設定し、それをSpringBootで動作させることができますか? – dragonfly

+0

修正しました。web.xmlはサーブレットコンテナ(たとえばtomcat)を設定することです。代わりに、これを行うことができます:@ImportResource( "classpath:applicationContext.xml") –

0

このコードは、あなたのメインの春のブートアプリケーションでは、既存のXML(ないのweb.xml)の構成ファイルを使用する方法を示し(または多分あなたはすでにあなたが使用する必要があるいくつかのJavaの設定を持っている):

@ImportResource("classpath:applicationContext.xml") 
@Configuration 
public class SimpleConfiguration { 
@Autowired 
Connection connection; //This comes from the applicationContext.xml file. 
@Bean 
Database getDatabaseConnection(){ 
return connection.getDBConnection(); 
} 
// Mode code here.... 
} 
関連する問題