【问题标题】:Spring 4 - Java Config, Tomcat, and Display NameSpring 4 - Java 配置、Tomcat 和显示名称
【发布时间】:2015-02-11 12:04:52
【问题描述】:

我正在使用带有纯 Java Config 的 Spring 4.1.1(即,根本没有 web.xml)。 AnnotationConfigWebApplicationContext 有一个 displayName 属性,我假设它类似于 web.xml 文件中的 display-name 标记。但是,当我在 Java Config 中设置此属性时,当我部署 WAR 时,Tomcat 管理器中的“显示名称”列为空,这与我在 web.xml 中使用显示名称标记不同。

这是预期的行为还是我做错了什么。我正在使用最新版本的 Tomcat,即 7.0.57、Java 1.7 u51 和 Groovy 2.3.7。

@Slf4j
class WebAppInitializer implements WebApplicationInitializer {
{
    @Override
    void onStartup(ServletContext container) throws ServletException {
        def rootContext = new AnnotationConfigWebApplicationContext()
        rootContext.register(WebAppConfig)
        rootContext.servletContext = container
        rootContext.displayName = 'Description of WAR goes here!'

        DispatcherServlet dispatcherServlet = new DispatcherServlet(rootContext)
        dispatcherServlet.throwExceptionIfNoHandlerFound = true

        def dispatcherServletReg = container.addServlet('dispatcher', dispatcherServlet)
        dispatcherServletReg.addMapping('/')
        dispatcherServletReg.loadOnStartup = 1
    }
}

提前感谢您的帮助。

【问题讨论】:

    标签: java spring tomcat tomcat7 spring-4


    【解决方案1】:

    正如您所见,设置的 displayName 仅适用于 Spring ApplicationContext,与 web.xml 显示名称完全无关。 web.xml 显示名称与: 容器.getServletContextName();

    由于该对象已通过其值集传入,并且 ServletContext 接口不允许您更改此值,因此我不确定纯 java 配置是否可行。

    但是,您仍然可以通过设置 metadata-complete="false" 将部分 web.xml 与 WebApplicationInitializer 结合使用:

    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    metadata-complete="false" version="3.0">
        <display-name>Web Application Name</display-name>
    </web-app>
    

    【讨论】:

    • 如果您也想更改 session-timeout 属性也可以这样做
    • 工作。感谢您的帮助。
    猜你喜欢
    • 2015-04-13
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 2019-07-24
    • 2011-08-27
    • 1970-01-01
    相关资源
    最近更新 更多