9

JBossAS7.1にデプロイされたWebアプリ内にカスタム404ページをすでに作成しました。したがって、アプリがfubar dot com:8080 / Myappにあり、fubar dot com:8080 / Myapp / xyzzyに移動すると、カスタムエラーページ(Webアプリのweb.xmlファイルで定義)が表示されます。

ただし、fubar dot com:8080 / xyzzyにアクセスすると、JBossはデフォルトの404ページを表示し、JBossとJBossのバージョンを開示します。

この情報を非表示にするには、このページを置き換える必要があります。

お知らせ下さい。

4

3 に答える 3

9

Myappアプリケーションの設定の一部であるJBoss7の他のすべてのコンテキストのエラーページをカスタマイズする場合は、次のものもあります。

  • JBossウェルカムページを無効にするには:ファイルstandalone / configuration / Standalone.xml(またはdomain / configuration / domain.xml)で、属性enable-welcome-rootをfalseに設定します(デフォルトではtrueです)。
  • 次に、context-rootを「/」に設定する単純なwarファイルをデプロイし、このwarのエラーページを定義する必要があります(Myappで使用したのと同じ方法を使用)。したがって、warの構造は次のようになります(error.warの名前は任意です)。
   error.war
    |
    |- META-INF
    |- WEB-INF
    |     |    
    |     |- web.xml
    |     |- jboss-web.xml
    |
    |- error
          |- 404.html

ここで、web.xmlファイルは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<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_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>yourcompanyname</display-name>
  <error-page>
            <error-code>404</error-code>
            <location>/error/404.html</location>
  </error-page>
</web-app>

また、jboss-web.xmlでcontext-rootを'/'として定義すると、次のようになります。

<jboss-web>
    <context-root>/</context-root>
</jboss-web>

ファイル404.htmlは、カスタマイズされたhtmlエラーページであり、404のデフォルトエラーの代わりにJbossが表示します。以上で、このアプリケーションをJBoss 7にデプロイすると、fubar dot com:8080/yzyqqaまたはその他のルートコンテキストにアクセスしたときにカスタム404エラーページが表示されます。Myapp web.xml(およびサーバーにデプロイする可能性のある他のすべてのアプリケーション)でもエラー構成を保持する必要があることに注意してください。

ちなみに、アプリMyappをfubar dot com:8080から直接アクセスできるようにすることを検討しましたか?または、jbossサーバーにプロキシ(Apacheなど)からのみアクセスできるようにすることもできます。これにより、この問題も回避できます。

お役に立てば幸いです。

于 2012-11-20T22:57:13.823 に答える
2

問題:のカスタムエラーページを定義しましweb.xmlMyapp。ここで、root asを使用してリソースにアクセスしMyapp、リクエストがaをスローする404と、カスタムエラーページが返されます。

ここで、他のルートにアクセスする場合は、ここxxyzzzzでカスタムエラーページを返します。

論理的には、他のプロジェクト用にファイルを構成した場合、他のプロジェクトでも同じであるとは期待できません。

そうでもなければ

  1. 他のプロジェクトにも同じように構成しますxxxyzzz。つまり、404構成もその中に配置しweb.xmlます。

  2. または、サーバースコープで何かを行う必要があります。

最初の解決策は、プロジェクトの数が少なく、どのプロジェクトとも一致しないURLを予期していない場合に備えて、かなり単純で簡単です。

あなたが最初の解決策で行きたいなら、あなたはそれをする方法を知っています

2番目のアプローチについて。私はあなたに役立つはずのいくつかの投稿を見つけることができました

これらを参照してください

jboss as7を使用すると、グローバルweb.xmlのカスタムはなくなります。グローバル404エラーページを設定する方法は1つしか見つかりませんでした。こちらをご覧ください。IT WORKS:D

Apache forJBossAS7のカスタムエラーページ

于 2012-11-20T20:43:36.237 に答える
1

自分でページを作成する必要があると思います。JBossはTomcatを使用してWebリクエストを処理します。

Tomcatで、独自の404応答ページを定義する方法は、web.xmlに次のスニペットを含めることです(参照-http: //wiki.apache.org/tomcat/FAQ/Miscellaneous#Q6

    <error-page>
        <error-code>404</error-code>
        <location>/error/404.html</location>
    </error-page>

支柱を使用してこれを行う方法の詳細なページは、mykong@ http: //www.mkyong.com/struts/how-to-handle-404-error-in-struts/によって作成されています。

支柱以外のフレームワークを使用している場合は、同等のものが必要です。

于 2012-11-20T20:19:17.523 に答える