2012-03-27 2 views
0

У меня есть проект Spring + Tiles, который отлично работает, и теперь я планировал переместить его в Jetty вместо развертывания на Tomcat. Так сконфигурированный сервер причалов использовать {DispatcherServlet} и установить мой setContextConfigLocation ("classpath: spring-application-context.xml"). В моем контексте приложения xml у меня есть плитка, и мой файл styles.xml находится в каталоге WEB-INF, но во время инициализации мое приложение никогда не находит его, не имеет значения, находится ли оно в classpath или нет, оно не может найти его.Не удается найти файлы конфигурации в Jetty + Spring + Tiles deployement

Моя развертывания структура каталогов

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

Jetty код сервера

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

Использование Jetty plugi n для Maven для запуска приложения с простой конфигурацией и без кодирования. Например:

<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: jetty-maven-plugin, поскольку они являются причалом версии 7 (для сервлета 2.5) или 8 (для сервлета 3.0) ... jetty6 очень старый на этом этапе –

+0

Можно ли это использовать с двоичными файлами вместо исходного кода? – tazo

+0

Вышеупомянутая конфигурация предназначена только для плагина maven. Для развертывания военных файлов вы должны скачать и установить jetty – jddsantaella

Смежные вопросы