Spring Web 3.0.5的Jetty 7 web.xml配置

时间:2011-10-27 01:45:13

标签: spring spring-mvc jetty web.xml

我在eclipse indigo中配置了Jetty 7嵌入模式。当我在eclipse中启动jetty时,似乎没有加载我的web.xml和spring-servlet.xml配置。我在网上搜索,似乎每个人都在做与我相同的配置,但是我没有加载。我忘记了什么吗?或Jetty 7配置与jetty 6不同?

Main.java

  Server server = new Server(8080);

  WebAppContext context = new WebAppContext();
  context.setResourceBase("../jettyserver/webapp");
  context.setContextPath("/");
  context.setParentLoaderPriority(true);

  HandlerList handlers = new HandlerList();
  handlers.setHandlers(new Handler[]{ context, new DefaultHandler()});

  server.setHandler(context);
  try {
         server.start();
     server.join();
  } catch (Exception e) {
     e.printStackTrace();
  }

的web.xml

 <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>WEB-INF/spring-servlet.xml</param-value>
</context-param>

<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

弹簧servlet.xml中

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">

 <context:annotation-config />
     <context:component-scan base-package="com.jetty.controller" />

     <bean id="viewResolver"
       class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
       <property name="prefix" value="/WEB-INF/jsp/" />
       <property name="suffix" value=".jsp" />
    </bean>
 </beans>

1 个答案:

答案 0 :(得分:0)

这里不是专家,但如果您使用eclipse,我会说您的资源库可能存在问题。

根据您在此处使用Eclipse的方式(WTP,Maven等),编译后的代码最终会在某个目标文件夹中。然而,您的JSP和所有可能不会跟随或可能不是您认为的那些。

编译代码并查看目标文件夹,查看它的位置。我做了类似的事情,但它正在测试代码,所以我并不关心路径是否链接到我的IDE。我们的版本几乎完全相同,除了这些之外还有适用的差异:

    WebAppContext webapp = new WebAppContext();
    webapp.setDescriptor("target/app/WEB-INF/web.xml");
    webapp.setResourceBase("target/app");
    webapp.setContextPath("/app");

正如您在此处所见,Eclipse中应用程序运行时的根路径是项目在工作区中的根路径。我设置了它,所以它发现它是相对于项目的根路径的东西,因此是那里的目标。

但是,如果您正在寻找在您的环境中运行的代码,那么在部署之后,您可能会更改特定应用程序的运行配置中的根文件夹,并将其设置为直接定位(或适用于您的任何内容)。

对不起,这里没有更具决定性,

无论如何,希望这有帮助。