我有一个appengine应用程序,使用Spring 3.1.2,并且工作正常。 Resident / Dynamic实例通常使用预热启动:
2013-05-20 20:32:53.786 /_ah/warmup 200 27205ms 0kb
现在我正在尝试将任务队列配置为由“后端”实例处理,但在/ _ah / start期间,它正在记录此意外的HTTP 302重定向状态代码:
2013-05-20 20:43:57.345 /_ah/start 302 50631ms 0kb instance=0
0.1.0.3 - - [20/May/2013:16:43:56 -0700] "GET /_ah/start HTTP/1.1" 302 106 - - "0.my-backend.my-application.appspot.com" ms=50597 cpu_ms=44134 cpm_usd=0.000012 loading_request=1 exit_code=111 instance=0 app_engine_release=1.8.0
I 2013-05-20 20:43:09.864 javax.servlet.ServletContext log: Initializing Spring root WebApplicationContext
...
A bunch of messages...
...
I 2013-05-20 20:43:55.659 org.springframework.web.context.ContextLoader initWebApplicationContext: Root WebApplicationContext: initialization completed in 45793 ms
I 2013-05-20 20:43:56.442 This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application.
E 2013-05-20 20:43:56.442 Process terminated because it failed to respond to the start request with an HTTP status code of 200-299 or 404.
我在web.xml中删除了Spring Servlet和Filter Chain,但没有任何改变。
我还将_ah映射为不安全的。它在驻留实例中按预期工作,但对于后端不是:
<http security="none" pattern="/_ah/**" disable-url-rewriting="true"/>
我错过了什么吗?!?!
答案 0 :(得分:0)
我找到了解决方案......这是与Spring View Resolver的冲突,它试图重定向&#34; _ah / start&#34;带前缀和后缀:
<bean lazy-init="true"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
为了解决这个问题,我绘制了&#34;热身&#34;并且&#34;开始&#34;到一个空的Servlet:
<servlet>
<servlet-name>_ah_warmup</servlet-name>
<servlet-class>com.my.app.EmptyWarmupServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>_ah_warmup</servlet-name>
<url-pattern>/_ah/warmup</url-pattern>
<url-pattern>/_ah/start</url-pattern>
</servlet-mapping>
现在后端正在启动并按预期处理任务队列!!