31

開発の時間とコストについて心配する必要はないと仮定してください。私は一般的な技術的利点(パフォーマンスの向上?APIの向上?)と新機能に興味があります。

私は現在4.2.xを使用する製品に取り組んでおり、かなり先のバージョンであり、収束する必要があるバージョンの大幅な変更を検討しています。

各バージョンのリリースノートと、5.x、6.x、7.x、および8.xの各リリースに関するいくつかの記事を簡単に確認しました。しかし、切り替えを行った人々から直接フィードバックをいただければ幸いです。

メッセージングを取り巻くいくつかの重要な変更(JBossMQからJBossMessengingへの切り替え)があることに気付きました。JBoss7.xの場合、構成レイヤーがかなり変更されているようです。その後、JBoss / WildFly 8.xに切り替えると、さらに多くのことが起こります。

可能であれば、落とし穴を指摘する良い記事をお勧めしてください。JBoss 5.xへの移行用にいくつか見つかりましたが、6.xまたは7.xの場合はそれほど多くはなく、他の誰かが現在8.xを評価しています。私はJBossのみに焦点を当てたいと思いますが、関連性があると思われる場合は、代替案もお勧めします。

詳細については、JPFおよびOSGi対応(Eclipse Equinoxを使用)のプラグインベースのシステムと、Swingで開発されたクライアント(一部はWebStartを介してデプロイされたもの)を組み合わせて使用​​します。

更新:この質問はすでにいくつかの素晴らしい答えをもたらしましたが、WildFlyの更新に値すると思います(実際、内部プロジェクトは、WildFlyを待つ予定だった4.2.xから7.xへの切り替えを遅らせました)。新しい考えや答えを歓迎します。

4

5 に答える 5

24

私はJBoss4から5にアップグレードしましたが、経験から、次の点に注意することが最も重要です。

  • JBoss 5(および6と7)は、XMLファイルを使用するJBoss4ほど寛容ではありません。すべてのデプロイメント記述子XMLファイルが有効であることを確認する必要があります。一部のファイルでDTDを使用している可能性があります-代わりにXMLスキーマを使用するようにこれらをアップグレードすることをお勧めします。
  • 一部のライブラリは非互換性を引き起こす可能性があります。これは、Webサービスにアクセスしたり、XML解析を行ったりする場合に特に当てはまります。
  • JBoss 4でJSPをプリコンパイルすると、JBoss6/7ではおそらく実行できなくなります。
  • JBoss4と5は異なるメッセージキューの実装を使用します。メッセージキューまたはトピックを定義している場合は、それらを再定義する必要があります。
  • JBossTreeCacheは使用されなくなりました。これをキャッシュ目的で使用する場合は、代わりに新しいJBossキャッシュを使用するように変更する必要があります。
  • JBoss5のセキュリティは異なります。リモートクライアントがJBossへの安全なアクセスを必要とする場合は、それらを別の方法で設定する必要があります。

いくつかの有用なリソースは次のとおりです。

https://dzone.com/articles/migrating-jboss-4-jboss-5 http://venugopaal.wordpress.com/2009/02/02/jboss405-to-jboss-5ga

公式には、JBoss6はJavaEE Webプロファイルに対してのみ認定されているため、EJB 2.xなどの「レガシー」機能を使用する場合、それらは将来サポートされなくなる可能性があります。アプリケーションのライフサイクルに応じて、これは問題になる場合と問題にならない場合があります。JBoss 6は現在EJB2.1を完全にサポートしていますが、これに対して認定されていません。

また、JBoss5はJBoss4よりもはるかに優れたメモリ処理を行うことがわかりました。JBoss4では、JBoss5よりもはるかに多くのPermGenエラーが発生します。

于 2011-06-03T16:56:36.213 に答える
9

私はJBoss5.1.0の実稼働経験とバージョン6の調査からしか話すことができません。

JBoss5はJavaEE5あり、JBoss6および7はJavaEE6です。API機能の不一致は、これらの仕様で最もよく文書化されています。JBoss6のシェルフライフは非常に短い可能性があります。これは、Java EE 6 Webプロファイルに対してのみ認定されており、バグ修正はバージョン7(執筆時点での3番目のベータ版)を対象としています。

JBossコミュニティフォーラムでより良い回答が得られると思います。

于 2011-06-01T19:35:53.747 に答える
5

JBossAS5からJBossAS7にアップグレードし、WildFlyAS8.1を目指しています。MQシリーズJMS2RARがないため、現時点では8に移行できません。

いくつかの違い:

  • 構成は非常に優れており、単純です。XMLファイルでアスペクトを構成する20個のXMLファイルに分散されなくなりました。代わりに、すべてが1つの中心的な場所です。すべてのポートが1つの中央の場所で構成され、server.xmlを変換するXSLファイルはなくなりました。クラスの実装の詳細を知らなくても、構成ファイルを理解することができます。JBoss 5.xを設定したことがない場合、これを理解するのは困難です。
  • クラスローディングモデルは正常に見え、jboss-deployment-structure.xmlを介して多くの制御を取得します
  • 一元化されたロギング(Slf4j、JUL、JCL、Log4j、…)は本当に素晴らしいです。
  • EJBクライアントライブラリは、はるかにクリーンアップされているように見えます。20から10JARに減少し、それらの半分はOSGiバンドルです(私たちのクライアントはEclipse RCPアプリケーションです)。
  • EJBクライアントのMaven依存関係の混乱はなくなり、代わりにBOMPOMを取得できるようになりました。
  • サーバーAPIのBOMPOMを取得します。
  • 起動が速くなり、メモリ使用量が少なくなります。80個のEJBとMQシリーズRARを、あまり調整せずに6秒でデプロイします。私たちのライブデータセットは200MBを超えています。
  • デプロイメントフォルダはデフォルトで空です
  • XNIOの(不足している)品質は怖いです。7.xでは、EJBのリモート処理にのみ使用され、いくつかのショーストッパーのバグ(デッドロック、ダブルフリー、ソケットハンドルリークなど)が発生しました。8.xでは、Tomcatの代わりにサーブレットにも使用されます。undertowで修正されている非常に基本的なサーブレットのバグがまだたくさんあります。

アプリケーションを実行するために必要な変更:

  • JNDI名をEE6標準化名に変更します
  • JBoss CacheからInfinispanに移行します(コードの一部はフラットAPIに移行されており、一部は引き続きツリーAPIを使用しています)
  • セキュリティの柔軟性がわずかに低下します(認証された呼び出しと認証されていない呼び出しを修正できなくなります)
  • リモートJNDIの詳細に依存するいくつかの恐ろしいコード
  • EJBクライアントの構成が異なります
  • インストール、デプロイ、開始、停止、…</li>のためのすべてのスクリプト
  • ExternalContextがなくなったので、別のアプローチに置き換える必要がありました
  • SARのMBeanを@StartUpEJBに置き換えました
  • コクーンのためのいくつかの醜いハック

AS 7.xシリーズには多くのバグがあり、修正はEAPシリーズでのみ利用可能です。8.xではなく7.xを使用する場合は、EAP6を購入することを強くお勧めします。

于 2014-05-21T13:02:24.540 に答える
0

これは、JBoss AS 7の妥協と将来に関する興味深いスレッドであり、AS5とAS6の問題についても言及しています。

http://community.jboss.org/message/613171

于 2011-12-27T13:10:04.953 に答える
0

最新にアップグレードした後、PermGenの肥大化の問題に直面している可能性のある人にこれを知らせたかっただけです。JBoss-6 Microcontainerは、起動時にクラスパス内のすべてのJARからクラスをロードすることにより、JBoss固有のアノテーションをスキャンしようとします。これにより、すべての不要なクラスのロードが開始されるため、PermGenが肥大化します。スキャンの量を減らすために、Microcontainerはjboss-scanning.xmlを使用して別の記述子フックを提供します。この「jboss-scanning.xml」をWAR内のWEB-INFに追加し、「jboss-scanning.xml」をEAR内のMETA-INFに追加します。

<scanning xmlns="urn:jboss:scanning:1.0">

    <!-- Purpose: Disable scanning for annotations in contained deployment. -->

</scanning>
于 2013-06-29T18:52:54.710 に答える