Конфигурация DispatcherServlet должна включать в себя HandlerAdapter - PullRequest
0 голосов
/ 21 апреля 2020

Я нашел несколько похожих сообщений по этой проблеме здесь, но ни одно из решений не помогло мне.

Я обновил приложение Spring MVC с одним простым классом @Controller с Spring 4.3.x до 5.2 0,5. Класс, ранее расширенный MultiActionController, который теперь отсутствует в 5.2.5. Поэтому я аннотировал класс с помощью @Controller и добавил аннотации следующим образом:

@Controller
@RequestMapping()
public class FrontController {

   @GetMapping
   public ModelAndView defaultAction(HttpServletRequest httpRequest, HttpServletResponse httpResponse) throws Exception {
     (...)
      return null;
   }

Компонент FrontController по-прежнему объявлен в XML. Поскольку есть дополнительная конфигурация bean-компонента, я не хотел бы выполнять работу по преобразованию всего этого в приложение, полностью основанное на аннотациях.

Сопоставление URL выполняется с помощью следующего определения компонента.

  <bean id="urlMapping"
      class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
      <property name="mappings">
         <map>
            <entry key="/*" value-ref="FrontController"/>
         </map>         
      </property>
      <property name="alwaysUseFullPath" value="true"/>
   </bean>

Записи в сети. xml:

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

<!-- Listener fuer das Initialisieren von Spring -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- Spring Front Controller Servlet-->
<servlet>
    <servlet-name>prozess-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>prozess-dispatcher</servlet-name>
    <url-pattern>*</url-pattern>
</servlet-mapping>

Wenn, вызывающий URL Я получаю следующую ошибку:

Error 500: javax.servlet.ServletException: No adapter for handler [FrontController@9a5e4341]: The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler

Одной из проблем здесь может быть сочетание конфигурации на основе XML и аннотаций. Но я еще не понял, какой подход я должен использовать, чтобы сделать это правильно. Как я уже сказал, я хотел бы сохранить файлы конфигурации XML, так как это было бы довольно много работы для преобразования.

Я описал всю необходимую информацию?

Спасибо за любую помощь, Йода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...