Конфигурация Jetty 7 web.xml для Spring web 3.0.5 - PullRequest
1 голос
/ 27 октября 2011

Я настроил встроенный режим Jetty 7 в eclipse indigo.Когда я запускаю jetty в eclipse, он, кажется, не загружает мою конфигурацию 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>

spring-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 голосов
/ 02 декабря 2011

Здесь не эксперт, но если вы используете 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 - это корневой путь вашего проекта в рабочей области.Я установил мой так, чтобы он обнаружил, что это материал относительно корневого пути проекта, отсюда и цель.

Если, однако, вы ищете код, который выполняется как в вашей среде, так и после развертывания, вы, вероятно, можете изменить корневую папку.в конфигурации запуска для вашего конкретного приложения и установите для него прямое целевое назначение (или то, что работает для вас).

Извините за то, что вы не стали более решительным,

В любом случае, надеюсь, это поможет.

...