仅在不引发异常的情况下,Apache CXF才会提示Spring MVC

时间:2019-04-24 08:07:07

标签: java spring spring-mvc model-view-controller cxf

我对Apache CXF和Spring MVC的基本设置如下:

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

然后我在resources文件夹中还有另一个.xml文件,用于定义肥皂端点。

文件 jboss-web.xml 包含上下文根,如下所示: <context-root>/BASE-DIR</context-root>。其余配置涉及日志记录和填充。

点击http://localhost:8080/BASE-DIR

后,我的所有肥皂服务都正确列出了

我的 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毫无例外地接管了。这对我来说很奇怪。有什么想法吗?

0 个答案:

没有答案