2014-09-12 5 views
1

В моем приложении Java используется встроенный Jetty 9.2.2. Я добавил библиотеку к pom.xml, содержащему файл web_fragment.xml. Но фрагмент не подхватил Jetty. Когда я запускаю приложение, я вижу в журналах, что библиотека загружена. Однако, когда запрос подается на сервлет из библиотеки, приложение возвращает 404. Как заставить его работать?Как настроить встроенный Jetty для сбора веб-фрагментов?

В приложении есть файл конфигурации Spring диспетчеру-servlet.xml и библиотека включена здесь:

<import resource="classpath:/web.fragment.lib.spring.xml" /> 

Там нет файла web.xml, но приложение содержит spring.xml файл с отображений , Он использует файл диспетчер-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:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd" 
     default-lazy-init="false"> 

    <context:annotation-config/> 
    <context:property-placeholder system-properties-mode="FALLBACK" location="classpath:config.properties"/> 

    <bean name="WebServer" class="org.eclipse.jetty.server.Server" init-method="start"> 
    <property name="connectors"> 
     <list> 
     <bean name="LocalSocket" class="org.eclipse.jetty.server.ServerConnector"> 
      <constructor-arg ref="WebServer"/> 
      <property name="host" value="0.0.0.0"/> 
      <property name="port" value="${jetty.port}"/> 
     </bean> 
     </list> 
    </property> 

    <property name="handler"> 
     <bean class="org.eclipse.jetty.server.handler.HandlerCollection"> 
     <property name="handlers"> 
      <list> 
      <bean class="org.eclipse.jetty.servlet.ServletContextHandler"> 
       <property name="sessionHandler"> 
       <bean class="org.eclipse.jetty.server.session.SessionHandler"/> 
       </property> 
       <property name="contextPath" value="${context.path}"/> 
       <property name="servletHandler"> 
       <bean class="org.eclipse.jetty.servlet.ServletHandler"> 
        <property name="servlets"> 
        <list> 
         <bean class="org.eclipse.jetty.servlet.ServletHolder"> 
         <property name="name" value="dispatcherServlet"/> 
         <property name="servlet"> 
          <bean class="org.springframework.web.servlet.DispatcherServlet"/> 
         </property> 
         <property name="initParameters"> 
          <map> 
          <entry key="contextConfigLocation" value="**classpath:dispatcher-servlet.xml**"/> 
          </map> 
         </property> 
         </bean> 
        </list> 
        </property> 
        <property name="servletMappings"> 
        <list> 
         <bean class="org.eclipse.jetty.servlet.ServletMapping"> 
         <property name="pathSpecs"> 
          <list> 
          <value>/</value> 
          </list> 
         </property> 
         <property name="servletName" value="dispatcherServlet"/> 
         </bean> 
        </list> 
        </property> 
       </bean> 
       </property> 
      </bean> 
      </list> 
     </property> 
     </bean> 
    </property> 
    </bean> 
</beans> 

ответ

1

Web Fragment auto configuration is a feature of the WebAppContext's Configuration layers.

В вашем примере вы не используете ни того, ни другого. Вы используете Jetty во встроенном смысле и собираете список сервлетов вручную.

Вам придется либо переключиться на создание приложения через WebAppContext, либо вручную добавить функции, которые предоставляют эти веб-фрагменты.

Важно понять, что веб-фрагменты являются фрагментами дескриптора webapp, что является сложной функцией webapp, которая является тем, что отслеживается WebAppContext, который является тем, что настроено в списке Уровни конфигурации, определенные в этом конкретном WebAppContext.

+0

См. Также: https://www.eclipse.org/jetty/documentation/current/configuring-webapps.html –

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