我们正在开发一个新应用程序,遵循Thomas Broyer针对GWT应用程序提出的结构及其多模块maven原型。
在服务器模块中,我们包含了Spring 3.1.1和Spring Security 3.1.0。我们有一个Controller用于提供SignIn和GWT的主机页面。此模块使用jetty maven插件版本8.1.3.v20120416。在本单元中,我们将客户端模块配置为叠加层并添加了其资源:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<scanIntervalSeconds>1</scanIntervalSeconds>
<webApp>
<baseResource implementation="org.eclipse.jetty.util.resource.ResourceCollection">
<resourcesAsCSV>src/main/webapp,${basedir}/../accounts-ui-client-desktop/target/accounts-ui-client-desktop-${project.version}/</resourcesAsCSV>
</baseResource>
<extraClasspath>${basedir}/../accounts-ui-shared/target/classes/</extraClasspath>
<jettyEnvXml>${basedir}/src/main/resources/jetty-web.xml</jettyEnvXml>
</webApp>
<systemProperties>
<systemProperty>
<name>java.util.logging.config.file</name>
<value>${basedir}/src/main/resources/logging.properties</value>
</systemProperty>
</systemProperties>
</configuration>
</plugin>
我们在web.xml中的配置将DispatcherServlet映射到/ pattern。
在运行带有jetty的服务器模块时,我们遇到了服务客户端模块中包含的静态内容的问题:运行,特别是在提供gwt的托管页面时,它请求
http://localhost:8080/app/app.nocache.js
导致Not Found错误。
我知道如何处理本地资源(包含在webapp中):
registry.addResourceHandler( “/资源/ **”)addResourceLocations( “/资源/”);
但是app.nocache.js是其他叠加层中包含的资源。
我的问题是:如何告诉Spring不要处理另一个叠加层中包含的资源?我试过
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
在Spring java config(扩展WebMvcConfigurerAdapter)中遇到了同样的问题。
答案 0 :(得分:2)
终于明白了。
问题只是一个Maven。我刚从父pom做了一个干净的安装,现在一切正常。
web.xml的最终配置是:
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
以及扩展WebMvcConfigurerAdapter的@Configuration类中Spring的最终配置:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/favicon.ico").addResourceLocations("/favicon.ico");
registry.addResourceHandler("/app/**").addResourceLocations("/app/");
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
很抱歉给您带来不便。