2012-09-19 40 views
1

我們正在開發一個新的應用程序,遵循Thomas Broyer提出的用於GWT應用程序和他的多模塊maven原型的結構。多模塊中的靜態資源GWT 2.4.0 - Spring 3.1.1應用程序

在服務器模塊中,我們包含了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到/模式。

我們遇到了服務運行與碼頭的服務器模塊時,包含客戶端模塊的靜態內容的問題:在特定運行,在GWT的託管頁面投放時,它請求

http://localhost:8080/app/app.nocache.js

導致未找到錯誤。

我知道如何處理這對本地資源(包含在Web應用程序):

registry.addResourceHandler( 「/資源/ **」)addResourceLocations( 「/資源/」)。

但app.nocache.js是其他疊加層中包含的資源。

我的問題是:我如何告訴Spring不要處理另一個覆蓋中包含的資源?我試過用

@Override 
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { 
    configurer.enable(); 
} 

在java的java配置(擴展WebMvcConfigurerAdapter)但是同樣的問題。

回答

1

終於明白了。

問題只是一個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> 

和春季在@Configuration類延伸WebMvcConfigurerAdapter最終配置:

@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(); 
} 

很抱歉的不便之處。