我已經使用註釋驅動配置生成了Spring Boot應用程序。Spring Boot中的web.xml無法找到XML名稱空間的Spring NamespaceHandler
但是我想用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>
,並添加@ImportResource("classpath:web.xml")
我@SpringBootApplication
類
@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);
}
}
然後我得到:
2016-10- 23 13:01:52.888錯誤9120 --- [main] osboot.SpringApplication:應用程序啓動失敗
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: 配置問題:找不到春天NamespaceHandler爲 XML schema命名空間[http://java.sun.com/xml/ns/javaee]犯規 資源:類路徑的資源[web.xml文件]
哪裏不對?
好,顯然我有一些差距,因爲我習慣於註釋解決方案。那麼,我怎麼能在web.xml中配置過濾器並使其能夠與Spring Boot一起工作呢? – dragonfly
正確,web.xml將配置您的servlet容器(例如tomcat)。相反,你可以這樣做,例如:@ImportResource(「classpath:applicationContext.xml」) –