2012-03-27 109 views
0

我有一個Spring + Tiles項目,它工作正常,現在我計劃將它移入Jetty,而不是在Tomcat上部署。因此,配置jetty服務器使用{DispatcherServlet}並設置我的setContextConfigLocation(「classpath:spring-application-context.xml」)。在我的應用程序上下文xml中,我配置了切片,並且我的tiles.xml文件位於WEB-INF目錄中,但在初始化期間,我的應用程序從未找到它,無論它是否在classpath中,都無法找到它。無法在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> 

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 2012-03-27 22:06:04

+0

我正在使用maven,但只是爲了構建。你的意思是使用Maven進行部署呢? – tazo 2012-03-28 00:19:11

+0

Maven不僅用於構建,它可以爲你做很多事情。看到我的答案。 – jddsantaella 2012-03-28 06:18:44

回答

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,因爲那些是jetty版本7(用於servlet 2.5)或8(用於servlet 3.0)... jetty6在這一點上已經很老了 – 2012-03-28 13:59:28

+0

可以使用與二進制文件,而不是源代碼? – tazo 2012-03-28 20:30:49

+0

以上配置僅適用於maven插件。對於部署戰爭文件,你應該下載並安裝jetty – jddsantaella 2012-03-28 21:42:06