我在Google Appengine服务器上遇到问题并且没有找到任何解决方案,也许有人可以帮助我。
我已经用他自己的路由器开发了一个聚合物应用程序,因此所有路由都在客户端完成。当我刷新页面时,服务器处理请求并且由于没有路由匹配而无法正常工作。
要解决这个问题,我已经在web.xml文件中设置了我想要始终提供的index.html文件whitout来处理url,请参阅下面的代码:
<!-- Always serve the index.html file if url is not defined in web.xml (It's polymer router, which will manage routing) -->
<servlet>
<servlet-name>app</servlet-name>
<jsp-file>/index.html</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
这在本地工作正常,但是当我在生产环境中部署时,我收到以下错误:
java.lang.IllegalStateException: index.html没有强制路径servlet
我一直在寻找一个解决方案,但如果有人有想法,我就没有做任何事情!
度过美好的一天!
答案 0 :(得分:1)
这与Polymer无关。你需要关注gae错误。
java.lang.IllegalStateException:没有index.html的强制路径servlet
你能试试吗? GAE No forced path servlet for xxx.jsp
如果它不起作用,您可以创建一个servlet来转发请求。 e.g。
替换
<jsp-file>/index.html</jsp-file>
使用servlet
<servlet-class>your.package.YourServlet</servlet-class>
覆盖your.package.YourServlet
中的doGetgetServletContext().getRequestDispatcher("/index.html").forward(req, res);
另见 https://issuetracker.google.com/issues/35884280#comment7和https://issuetracker.google.com/issues/35884280#comment8