我使用 Spring Boot 创建了一个常见问题解答。它需要部署到 tomcat 6 服务器(servlet 2.5)。我需要配置当前父 java app(war) web.xml 以将所有请求指向 url 模式“/faq/*”,例如,指向我的 spring boot FAQ 应用程序。我已将 FAQ.jar 文件复制到父应用程序的 lib 文件夹中。但我不确定如何在父应用程序的 web.xml 中配置/注册 spring boot servlet 和 servlet 映射。
使用 spring boot 遗留示例。我将 spring boot 应用程序与依赖项 jar 文件一起放在父应用程序 lib 文件夹中。我将此代码块添加到父应用程序的 web.xml 中。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>faq.Application</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>metricFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>metricFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>SpringServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextAttribute</param-name>
<param-value>org.springframework.web.context.WebApplicationContext.ROOT</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
但是当我启动 Tomcat 时,出现以下错误。
2014 年 6 月 30 日上午 12:17:23 org.apache.catalina.core.StandardContext listenerStart 严重:向 org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener java.lang.IllegalAccessError 类的侦听器实例发送上下文初始化事件的异常: 试图访问方法 org.springframework.core.io.support.SpringFactoriesLoader.loadFactoryNames(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/List; 来自 org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:355) 的 org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:346) 的 org.springframework.boot 的类 org.springframework.boot.SpringApplication。 SpringApplication.initialize(SpringApplication.java:222) 在 org.springframework.boot.SpringApplication.(SpringApplication.java:
凯维凯夫