2012-09-19 3 views
1

우리는 다중 모듈 maven 아키 타입을 사용하여 GWT 응용 프로그램을 위해 Thomas Broyer가 제안한 구조에 따라 새로운 응용 프로그램을 개발하고 있습니다.다중 모듈 GWT 2.4.0의 정적 리소스 - Spring 3.1.1 응용 프로그램

서버 모듈에는 Spring 3.1.1 및 Spring Security 3.1.0이 포함되어 있습니다. SignIn과 GWT의 호스트 페이지를 제공하는 컨트롤러가 있습니다. 이 모듈은 jetty maven plugin 버전 8.1.3.v20120416을 사용하고 있습니다. 이 모듈에서는 오버레이로 클라이언트 모듈을 구성하고도 자원을 추가했습니다 : web.xml에

 <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> 

우리의 설정은에/패턴 DispatcherServlet에 매핑합니다.

는 우리는 서버 부두와 모듈 실행시 클라이언트 모듈에 포함 된 정적 콘텐츠 제공에 문제가 발생하는

: GWT에서의 호스팅 페이지가 제공 될 때 실행, 특히를, 그것은

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

를 요청 결과를 찾을 수 없습니다.

나는 (웹 애플리케이션에 포함 된) 로컬 리소스에 대해이 작업을 처리하는 방법을 알고

registry.addResourceHandler ("/ 자원/**") addResourceLocations ("/ 자원 /");.

하지만 app.nocache.js는 다른 오버레이에 포함 된 리소스입니다.

제 질문은 : 어떻게 다른 오버레이에 포함 된 리소스를 Spring이 처리하지 못하게 할 수 있습니까? 나는 Spring java config (WebMvcConfigurerAdapter 확장)에서 동일한 문제를 가지고

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

으로 시도했다.

답변

1

마침내 얻었습니다.

문제는 Maven 하나뿐이었습니다. 방금 부모 pom에서 새로 설치했고 모든 것이 작동 중입니다.

<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 봄에 대한 최종 구성 : web.xml을위한

최종 구성은 불편위한

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

미안.