parent
f304d46955
commit
9b6cb83be5
|
@ -299,6 +299,10 @@ run the app. A http://issues.gradle.org/browse/GRADLE-2871[bug in Gradle] curren
|
|||
prevents you from using Gradle newer than 1.6.
|
||||
|
||||
|
||||
[[cloud-deployment-gae]]
|
||||
== Google App Engine
|
||||
Google App Engine is tied to the Servlet 2.5 API, so you can't deploy a Spring Application
|
||||
there without some modifications. See the <<howto.adoc#howto-servlet-2-5, Servlet 2.5 section>> of this guide.
|
||||
|
||||
[[cloud-deployment-whats-next]]
|
||||
== What to read next
|
||||
|
|
|
@ -2064,3 +2064,7 @@ context.
|
|||
|
||||
Applications that are not already Spring applications might be convertible to a Spring
|
||||
Boot application, and the guidance above might help, but your mileage may vary.
|
||||
|
||||
[[howto-servlet-2-5]]
|
||||
=== Deploying a WAR in an Old (Servlet 2.5) Container
|
||||
include::servlet-2.5.adoc[]
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
Spring Boot uses Servet 3.0 APIs to initialize the `ServletContext`
|
||||
(register `Servlets` etc.) so you can't use the same application out
|
||||
of the box in a Servlet 2.5 container. It *is* however possible to run
|
||||
a Spring Boot application on an older container with some special
|
||||
tools. If you include `org.springframework.boot:spring-boot-legacy` as
|
||||
a dependency
|
||||
(https://github.com/scratches/spring-boot-legacy[maintained
|
||||
separately] to the core of Spring Boot and currently available at
|
||||
1.0.0.RELEASE), all you should need to do is create a `web.xml` and
|
||||
declare a context listener to create the application context and your
|
||||
filters and servlets. The context listener is a special purpose one
|
||||
for Spring Boot, but the rest of it is normal for a Spring application
|
||||
in Servlet 2.5. Example:
|
||||
|
||||
[source,xml,indent=0]
|
||||
----
|
||||
<?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">
|
||||
|
||||
<context-param>
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<param-value>demo.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>
|
||||
</filte>r
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>metricFilter</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>appServlet</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>appServlet</servlet-name>
|
||||
<url-pattern>/</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
</web-app>
|
||||
----
|
||||
|
||||
In this example we are using a single application context (the one created by the context listener) and
|
||||
attaching it to the `DispatcherServlet` using an init parameter. This is normal in a Spring Boot
|
||||
application (you normally only have one application conext).
|
Loading…
Reference in New Issue