Apache CXF выгружает Spring MVC только тогда, когда нет исключений - PullRequest
0 голосов
/ 24 апреля 2019

Моя базовая настройка для Apache CXF и Spring MVC выглядит следующим образом:

 WEB-INF/
     jsp/
         index.jsp
     jboss-web.xml
     mvc-servlet.xml
     web.xml

У меня есть другой файл .xml в папке ресурсов, определяющий конечные точки мыла.

Файл jboss-web.xml содержит корень контекста следующим образом: <context-root>/BASE-DIR</context-root>. Остальная конфигурация касается ведения журналов и прочего.

Когда я нажимаю http://localhost:8080/BASE-DIR

, все мои мыльные службы указаны правильно.

My web.xml содержит следующее:

<web-app>
<display-name>Spring MVC Application</display-name>
<servlet>
    <servlet-name>mvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>mvc</servlet-name>
    <url-pattern>/mvc/*</url-pattern>
</servlet-mapping>
</web-app>

Файл mvc-servlet.xml устанавливается следующим образом:

<beans>
    <mvc:annotation-driven/>
    <mvc:resources mapping="/resources/**" location="/resources/"/>

    <context:component-scan base-package="com.xyz.controller"/>

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

Наконец, мой класс контроллера определен следующим образом:

@Controller
public class MyController {

    @GetMapping(value = {"/index"})
    public String index(Model model) {
        throw new UnsupportedOperationException();
    }

    @GetMapping(value = {"/index2"})
    public String index2(Model model) {
        return "index";
    }

}

Вот проблема:

Удар http://localhost:8080/BASE-DIR/mvc/index вызывает исключение UnsupportedOperationException. Однако при нажатии http://localhost:8080/BASE-DIR/mvc/index2 возвращается страница списка служб Apache CXF по умолчанию:

No service was found.

По какой-то причине Apache CXF вступает во владение, если нет исключения. Это странно для меня. Есть идеи?

...