1

Jboss 4.2.3 を使用して Redhat 6 にプロジェクトを展開しているときに、次のような問題が発生したため、他の人を助けることができるようにスタックオーバーフローに置くことにしました。どなたか検索しやすいような良いタイトルを教えてください。

Q: Jboss 4.2.x で古い JSF ライブラリを無視し、プロジェクト ライブラリ内で使用するようにするにはどうすればよいですか?

Q: Jboss がWARファイル スキャン用に特定のパスをスキャンするようにするにはどうすればよいですか?

Q: localhost ではなく IP アドレスで Jboss をバインドするにはどうすればよいですか?

Q: Jboss は展開されたWARファイルをどこに置きますか?

Q: Hibernate-annotationsJboss 4.2.3 アノテーションと競合し、次の例外をスローします。

java.lang.ClassCastException: org.hibernate.validator.event.ValidateEventListener cannot be cast to org.hibernate.event.PreInsertEventListener 

Q: で実行するJSF 2.0.xにはJBoss 4.0.x? JSF 2.0少なくともサポートし、Servlet 2.5 APIJBoss は最大でTomcat 5.xサポートできます。Servlet 2.4

Q: 動的 Web プロジェクトのサーブレット バージョンを変更するにはどうすればよいですか?

4

1 に答える 1

0

Q: Jboss が WAR ファイル スキャン用の特定のパスをスキャンするようにするにはどうすればよいですか?

  1. 開ける$JBOSS_HOME/server/default/conf/jboss-service.xml
  2. 次のタグでコンマの後に戦争を置くパスを追加します。私の戦争がに貼り付けられているとします/Oracle/my-web-apps

    <attribute name="URLs">
       deploy,/Oracle/my-web-apps <as many comma separated path for Jboss to scan war>
    </attribute>
    

Q: localhost ではなく IP アドレスで Jboss をバインドするにはどうすればよいですか?

次のコマンドで IP の場合にアクセスできるように、JBOSS を IP アドレスでバインドします。

sh /Jboss/bin/run.sh -b 0.0.0.0

Q: Jboss は展開された WAR ファイルをどこに置きますか?

あなたWAR/Jboss/server/default/temp/deploy展開されますが、Jbossサーバーを停止するとすべてのプロジェクトがアンデプロイされるため、デプロイフォルダーはJbossサーバーを実行している場合にのみ表示されることに注意してください。

Q: Jboss 4.2.x で古い JSF ライブラリを無視し、プロジェクト ライブラリ内で使用するようにするにはどうすればよいですか?

このために、JBoss 側で何も変更する必要はありませんがweb.xml、独自のプロジェクトで変更する必要があります。以下context-paramを入れて、すべて完了

<context-param>
   <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
   <param-value>true</param-value>
</context-param>

リンク: http://docs.jboss.org/jbossas/6/JSF_Guide/en-US/html/

Q: Hibernate-annotationsJboss 4.2.3 アノテーションと競合し、次の例外をスローします。

に移動し/jboss-4.2.3.GA/server/default/libてコピーし、 jarhibernate-annotations.jarに置き換えます。hibernate-annotations次に、プロジェクトを再度エクスポートしてデプロイします。問題が解決しました。:-)

Q: JBoss 4.0.x で JSF 2.0.x を実行するにはどうすればよいですか? JSF 2.0 は少なくとも Servlet 2.5 API をサポートし、JBoss には最大で Servlet 2.4 をサポートできる Tomcat 5.x があります。

非同期サポートなどの Servlet 3.0 の高度な機能を使用していない場合は、EL タグが異なるだけです。以下の手順に従ってください。Jboss 4.x で JSF 2.0 を実行できます。

この質問の元の回答へのリンク --> https://stackoverflow.com/a/5998625/185022

JSF 2.0 は、Servlet 2.5 の一部であるEL 2.1に大きく依存しており、Servlet 2.4 の一部であるEL 2.0とは対照的に大きな変更点ですが、特定の Servlet 2.5 固有の API には依存していません。サーブレット 2.4 は問題なく動作するはずです。したがって、理論的には、独自の EL 2.1 API と/WEB-INF/lib. ここでは、Tomcat 5.5.33 で次のライブラリを使用して簡単なテストを行いました/WEB-INF/lib

  • el-api.jarTomcat 6.0.xlibのフォルダーからコピーされたファイル
  • jboss-el.jarファイル (EL 2.1 を実装し、EL 2.2 のような引数を使用したメソッド呼び出しをサポートします)
  • jsf-api.jarおよびMojarra 2.0.xjsf-impl.jarから

web.xmlJBoss EL が宣言されているServlet 2.4 :

<context-param>     
    <param-name>com.sun.faces.expressionFactory</param-name>
    <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>   
</context-param>
    <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener> 
<context-param>
    <param-name>com.sun.faces.validateXML</param-name>
    <param-value>false</param-value>

シンプルな JSF 2.0 Facelet (JSP ではありません!) は、Tomcat 5.5.33 でシンプルな<h:form>ボタンと<f:ajax>シンプルな機能を備えています。@ViewScoped @ManagedBeanJBoss 4.0.5 で試して、徹底的にテストしてください。

JDK 1.4 ではなく、少なくとも JDK 1.5 が必要であることに注意してください。el-api.jarまた、サーブレット 2.5 固有のファイルが存在するため、この方法ではアプリケーションをサーブレット 3.0 コンテナーに移植できないことに注意してください。

Q: 動的 Web プロジェクトのサーブレット バージョンを変更するにはどうすればよいですか?

Eclipse でプロジェクトを右クリックしてプロパティに移動し、下の画像に示すように Project Facet をクリックします。 プロジェクトが直面している

Eclipse でそれができない場合は、に移動し$ProjectWorkSpace/.settings/org.eclipse.wst.common.project.facet.core.xmlて値をfacet="jst.web"toに変更します。また、以下に示すよう2.4に、サーブレット 2.4 の XML スキーマを変更することも忘れないでください。Web.xml

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
                             http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
于 2013-10-23T06:42:22.163 に答える