2012-03-27 2 views
0

저는 잘 작동하는 Spring + Tiles 프로젝트를 가지고 있으며 Tomcat에 배치하는 대신 Jetty로 옮길 계획입니다. 그래서 {DispatcherServlet}을 사용하고 내 setContextConfigLocation ("classpath : spring-application-context.xml")을 설정하도록 부두 서버를 구성했습니다. 내 응용 프로그램 컨텍스트 xml에서 타일을 구성하고 내 tiles.xml 파일은 WEB-INF 디렉토리에 있지만 초기화 중에 응용 프로그램이 찾지 못하거나 클래스 경로에 있는지 여부와 상관없이 찾을 수 없습니다.Jetty + Spring + Tiles 배치에서 설정 파일을 찾지 못합니다.

내 배포 디렉토리 구조

|- my_app.jar 
|- WEB-INF 
    |- tiles.xml 
    |- views 
     | - jsps's here 

내 응용 프로그램 컨텍스트 XML

<context:component-scan base-package="com.jetty.spring"/> 

<mvc:annotation-driven/> 

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" /> 

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" /> 
</bean> 

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <property name="definitions"> 
     <list> 
      <value>/WEB-INF/tiles.xml</value> 
     </list> 
    </property> 
</bean> 

부두 서버 코드

Server server = new Server(8080); 
Context context = new Context(server, "/", Context.SESSIONS); 

DispatcherServlet dispatcherServlet = new DispatcherServlet(); 
dispatcherServlet.setContextConfigLocation("classpath:spring-application-context.xml"); 

ServletHolder servletHolder = new ServletHolder(dispatcherServlet); 
context.addServlet(servletHolder, "/*"); 

server.start(); 
server.join(); 

어떤 도움을?

+0

Maven을 사용하고 있습니까? 많은 시간을 절약 할 수있는 Maven 용 부티크 플러그인이 있습니다. 이런 종류의 문제는 없을 것입니다. – jddsantaella

+0

나는 빌드를 위해서만 maven을 사용하고있다. 배포 용으로 maven을 사용한다는 의미입니까? – tazo

+0

Maven은 빌드뿐만 아니라 많은 것을 할 수 있습니다. 내 대답을 보라. – jddsantaella

답변

1

단순한 구성으로 아무것도 코딩하지 않고 응용 프로그램을 실행하려면 Maven에 Jetty plugi n을 사용하십시오. 예 :

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>maven-jetty-plugin</artifactId> 
    <version>6.1.26</version> 
    <configuration> 
     <webAppConfig> 
      <contextPath>/</contextPath> 
     </webAppConfig> 
    </configuration> 
</plugin> 

그런 다음 mvn jetty:run을 사용하여 응용 프로그램을 실행하십시오.

+0

org.mortbay.jetty를 사용하는 것이 좋습니다. 부두 버전 7 (서블릿 2.5) 또는 8 (서블릿 3.0) ... jetty6은 매우 오래된 것입니다. –

+0

사용할 수 있습니까? 소스 코드 대신 바이너리를 사용합니까? – tazo

+0

위의 설정은 maven plugin만을위한 것입니다. war 파일을 배포하려면 jetty를 다운로드하여 설치해야합니다. – jddsantaella

관련 문제