我正在使用 Vaadin 框架,我的 web.xml 如下所示:
<servlet>
<servlet-name>myservletname</servlet-name>
<servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class>
<init-param>
<description>
Vaadin application class to start</description>
<param-name>application</param-name>
<param-value>MyApplication</param-value>
</init-param>
<init-param>
<description>
Application widgetset</description>
<param-name>widgetset</param-name>
<param-value>MyWidgetset</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>myservletname</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
此外,我的应用程序目录如下所示:
.
├── (various xml config files)
├── META-INF
│ └── ...
├── static
│ ├── styles.css
│ ├── welcome_de.html
│ └── welcome_fr.html
├── trustStore.jks
├── VAADIN
│ └── ...
└── WEB-INF
├── lib
│ └── (various libraries)
└── web.xml
welcome_de.html
我的目标是welcome_fr.html
静态访问。到现在为止还挺好。在我直接从 Eclipse(tomcat 版本 6.0.32)运行 Tomcat 实例的测试机器上,一切正常。我可以使用 URL 访问该文件:
http://localhost:8080/MyApplication/static/
如果我将 WAR 文件导出并部署到生产性 Tomcat 服务器,它的行为会有所不同。
在我的生产服务器(tomcat 版本 6.0.18)上访问相同的文件时,我收到错误 404。出于调试目的,我为servlet启用了该listing
属性。default
我发现我只能welcome_de.html
使用
http://productive:8080/MyApplication/static/static/welcome_de.html
. 如果我使用与此处测试相同的链接,我将获得我的 web 应用程序的内容。
不知何故,该文件夹static
似乎嵌套了一层。
任何的想法 ?为什么两台机器的行为不同 - 而没有主要版本差异?
不幸的是,将生产服务器升级到版本 6.0.32 不是一种选择。