2

JSF-Spring 統合アプリケーションがあります。アプリケーションは、私の非クラスター環境でうまく機能します。アプリケーションをクラスター化された [wildfly 8.0.0] 環境にデプロイすると、シリアライゼーションに関するさまざまな問題に直面します。いくつかの例は、DTO クラスがシリアライズ可能に実装されていなかったこと、私がしたくない Logger クラスをシリアライズしようとしたことなどです。

クラスター化された環境にデプロイされたアプリケーションには、web.xml に< distributable />タグがあるため、ノード間でセッション レプリケーションを試行し、シリアル化できない場合に失敗します。

すべての開発者がこれらの行のガイドラインに従っていない可能性があり、これらのインスタンスの一部が発生します。

したがって、私の質問は、クラスター化されていない環境であるテスト サーバー [wildfly 8.0.0] でこれらすべてのシリアライゼーションの問題を確認するための最良のオプションは何かということです。

より明確にするために、1 つの例外の詳細を追加します。

Caused by: java.lang.RuntimeException: Failure to marshal argument(s)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.marshallCall(CommandAwareRpcDispatcher.java:333)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.processSingleCall(CommandAwareRpcDispatcher.java:352)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommand(CommandAwareRpcDispatcher.java:167)
... 76 more
Caused by: org.infinispan.commons.marshall.NotSerializableException: com.org.account.service.AccountExpServiceImpl
Caused by: an exception which occurred:
in field accountExpService
in field m
in object java.util.HashMap@85b67fbe
in object org.jboss.as.clustering.marshalling.SimpleMarshalledValue@85b67fbe
in object org.infinispan.commands.write.ReplaceCommand@ec0c12ad
in object org.infinispan.commands.tx.PrepareCommand@ce32eb5a
4

2 に答える 2

1

アプリケーションをローカルで実行するためのさまざまなプロファイルを持つことができます。プロファイルを使用web.xml せず <distributable/>に使用することも、デプロイ用に 1 つを使用することもできます。プロファイルはクラスター対応であり、したがってタグを使用します。 Maven<distributable/>を使用してビルドしている場合は、 war プラグインとプロファイルを確認する必要があります。プロファイルに依存する web.xml を提供するには、この回答を参照してください

ただし、このソリューションは、開発環境と本番環境の間でシステムの動作を大幅に変更します。シリアライゼーションの問題をデプロイして初めて発見すると、(時間と労力の点で) コストがかかる可能性があります。

したがって、連載の問題を 1 つずつソートするのが道です。

于 2016-02-09T12:32:46.930 に答える