我使用spring boot创建了一个常见问题解答。它需要部署到Tomcat6服务器(Servlet2.5)上。我需要配置当前的父java应用程序(War) web.xml,以将所有请求指向url模式"/ FAQ /*“,例如指向我的spring boot常见问题应用程序。我已经将FAQ.jar文件复制到父应用程序的lib文件夹中。但是我不确定如何在父应用程序的web.xml中配置/注册spring boot servlet和servlet映射。
使用spring boot遗留示例..我将我的spring boot应用程序与依赖jar文件放在父应用程序库文件夹中。我将此代码块添加到父应用程序的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时,我得到了以下错误。
Jun 30,2014 12:17:23 AM org.apache.catalina.core.StandardContext listenerStart SEVERE:向类的侦听器实例发送上下文初始化事件时出现异常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.SpringApplication.initialize(SpringApplication.java:222)在org.springframework.boot.SpringApplication.(SpringApplication.java:198)在org.springframework.boot.builder.SpringApplicationBuilder.(SpringApplicationBuilder.java:83)在org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener的org.springframework.boot.SpringApplication班级.initWebApplicationContext(SpringBootContextLoaderListener.java:48)在org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)在org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:897)在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:873) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1095) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1617) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) 6月30日,2014 12:17:23 AM org.apache.catalina.core.StandardContext startInternal严重: Error listenerStart
KevyKev
发布于 2014-06-27 00:35:24
Spring Boot并不正式支持Servlet 2.5,但它并不需要花费太多时间就能使其工作。您可能会发现这很有用:https://github.com/scratches/spring-boot-legacy。示例如下:https://github.com/scratches/spring-boot-sample-gae。
https://stackoverflow.com/questions/24435718
复制相似问题