2012-09-19 2 views
1

Мы разрабатываем новое приложение, следуя структуре, предложенной Томасом Бройером для приложений GWT, с его многомодульными архетипами.Статические ресурсы в многомодульном GWT 2.4.0 - приложение Spring 3.1.1

В серверном модуле мы включили Spring 3.1.1 и Spring Security 3.1.0. У нас есть контроллер для предоставления хостинговых страниц SignIn и GWT. В этом модуле используется плагин plugty версии 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

что приводит к ошибке Not Found.

Я знаю, как справиться с этим для локального ресурса (содержащийся в веб-приложение):

registry.addResourceHandler ("/ ресурсы/**") addResourceLocations ("/ ресурсы /");.

, но app.nocache.js - это ресурс, содержащийся в другом наложении.

Мой вопрос: как я могу рассказать Весне, чтобы не обрабатывать этот ресурс, содержащийся в другом наложении ?. Я попытался с

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

в Spring Java конфигурации (расширение WebMvcConfigurerAdapter), но с той же проблемой.

ответ

1

Наконец-то получил.

Проблема была только в Maven. Я просто сделал чистую установку у родительского помпы, и теперь все работает.

В последней конфигурации 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> 

и окончательные конфигурации для Spring в простирающейся WebMvcConfigurerAdapter класса @Configuration:

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

Извините за неудобство.