无法在Jetty+Spring+Tiles部署中找到配置文件



我有一个Spring+Tiles项目,它运行良好,现在我计划将它转移到Jetty中,而不是部署在Tomcat上。因此,将jetty服务器配置为使用{DispatcherServlet}并设置我的setContextConfigLocation("classpath:spring application context.xml")。在我的应用程序上下文xml中,我配置了tiles,tiles.xml文件在WEB-INF目录中,但在初始化期间,我的应用程序永远找不到它,无论它是否在classpath中,它都找不到。

我的部署目录结构

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

有什么帮助吗?

使用Maven的Jetty插件,以简单的配置运行应用程序,而无需编写任何代码。例如:

<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即可运行您的应用程序。

最新更新