使用Google Appengine服务器上的Polymer应用程序进行路由

时间:2017-10-27 14:07:56

标签: java google-app-engine

我在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

我一直在寻找一个解决方案,但如果有人有想法,我就没有做任何事情!

度过美好的一天!

1 个答案:

答案 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

中的doGet
getServletContext().getRequestDispatcher("/index.html").forward(req, res);

另见 https://issuetracker.google.com/issues/35884280#comment7https://issuetracker.google.com/issues/35884280#comment8