我使用Vaadin框架,我的web.xml如下所示:Tomcat的不同机器上的表现不同
<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错误。出于调试目的,我启用default
servlet的listing
属性。我发现我只能使用
http://productive:8080/MyApplication/static/static/welcome_de.html
访问welcome_de.html
。如果我在这里使用与测试相同的链接,我会得到我的web应用程序的内容。
不知何故,文件夹static
似乎是嵌套在一个层次本身。
有什么想法?为什么两台机器的行为不同 - 而没有主要的版本差异?
不幸的是,将生产服务器升级到版本6.0.32不是一种选择。
是否安装了一些反向代理?除了在我知道的tomcat版本 – ilcavero
中的细微差别之外,其他东西似乎不同。任何想法来验证这一点? – Atmocreations