0

生成された .war ファイルをスタンドアロンの Tomcat サーバーにデプロイするとエラー 404 が発生しますが、Tomcat サーバーを使用して IDE (IntelliJ) 内に war をデプロイすると、正常に動作します。


これはイニシャライザです

        public void onStartup(ServletContext servletContext)
                       throws ServletException {
                      AnnotationConfigWebApplicationContext mvcContext = new AnnotationConfigWebApplicationContext();
                      mvcContext.register(AppConfig.class);

                servletContext.addListener(new ContextLoaderListener(mvcContext));

                      ServletRegistration.Dynamic dispatcher = servletContext.addServlet(
                        "dispatcher", new DispatcherServlet(mvcContext));
                      dispatcher.setLoadOnStartup(1);
                      dispatcher.addMapping("/");
            }

これはアプリケーション構成です

    **Tiles Configuration**

        @Bean
        public TilesConfigurer getTilesConfigurer() {
            TilesConfigurer tilesConfigurer = new TilesConfigurer();
            tilesConfigurer.setDefinitions(
                    "/WEB-INF/defs/tiles.xml");
            return tilesConfigurer;
        }

        @Bean
        public UrlBasedViewResolver getUrlBasedResolver() {
            UrlBasedViewResolver urlBasedViewResolver = new UrlBasedViewResolver();
            urlBasedViewResolver.setViewClass(new TilesView().getClass());
            return urlBasedViewResolver;
        }

        /** End of Tiles Configuration */

    **View Resolver:**

    InternalResourceViewResolver resolver = new InternalResourceViewResolver();
            resolver.setPrefix("/WEB-INF/pages/**");
            resolver.setSuffix(".jsp");
            return resolver;


    **Tiles.xml**

    <definition name="hello-tiles" extends="commons">
            <put-attribute name="header" value="/WEB-INF/template/header2.jsp" />
            <put-attribute name="title" value="Hello Page" />
            <put-attribute name="body" value="/WEB-INF/pages/hello.jsp" />
        </definition>
4

1 に答える 1

-1

アプリケーションは、パスを解決するために、運用マシン上の Tomcat インストール パスを認識する必要があります。CATALINA_HOMExml にハード コードするか、Tomcat ieまたはのインストール パスを取得できるプロパティ ファイルを指定できますCATALINA_BASE。プロダクションではなく IDE で機能する理由は、システムが/WEB-INFIDE で を理解するためですが、スタンドアロン システムに展開する場合はそうはなりません。

スタンドアロン サーバーのインストール パスを各パスに追加できます。例えばC:/Tomcat/bin。したがって、次のようにファイルを参照する必要があります

<put-attribute name="body" value="C:/Tomcat/bin/WEB-INF/pages/hello.jsp" />

絶対パスが苦手な方は、上記の変数とその使用方法をプロパティ ファイルから参照できます。

それが役に立てば幸い。

于 2014-08-18T09:13:57.817 に答える