1

org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: org.mobicents.protocols.ss7.sccp.parameter.SccpAddress.<init>(Lorg/mobicents/protocols/ss7/indicator/RoutingIndicator;ILorg/mobicents/protocols/ss7/sccp/parameter/GlobalTitle;I)V

奇妙なことに、開発マシンで同じMobicentsプロトコルJARライブラリのセットを実行していますが、サーバーでこれを受け取ります。

問題の原因となっている行は次のとおりです。

SccpAddress localAddress = new SccpAddress(RoutingIndicator.ROUTING_BASED_ON_DPC_AND_SSN, Controller.LOCAL_SPC, localGT, Controller.SSN_CAP);

そして、彼らのテストケースで使用されたものと非常に似ています。その行を逐語的に試したときにも同じエラーが発生しました。

でデコードメソッドをSccpAddressCodec有効なバイト配列で使用しようとすると、同じエラーが発生しました。

MobicentsSS7プロトコルスタックのバージョン1.0.0.CR1を使用しています。

4

2 に答える 2

0

には、半ダースほどのさまざまな理由がありNoSuchMethoErrorます。一般的な問題の1つは、たとえばJARファイルのバージョン1.2に対してコンパイルした後、バージョン1.1に対して実行した場合に発生し、2つのバージョン間に非互換性があります。これは、最も単純な呼び出しで発生する可能性があります。

インターフェイスを取り巻くいくつかのシナリオは、もう少し複雑です。クラスが(いくつかの奇妙なパスを介して)implementすべてのメソッドをサポートしていないインターフェイスに到達する可能性があり、同じコード(同じJARファイルを使用)でパスAまたはパスBをたどると、動作が引き起こされるかどうかがわかります。これらは整理するためのクマです。

ただし、最初に2つの環境に存在するJARファイルを調べて、それらが異なるかどうかを確認します。一般に(例外はありますが)、コンパイル環境では常に最も古い/最も低いバージョンのJARファイルを使用するようにしてください。(もちろん、コンパイル環境には常に最新のものがある傾向があるため、これは問題です。)

于 2011-11-16T18:07:40.760 に答える
0

参考:サードパーティによって提供された古いjarパッケージには、これらの問題を引き起こしたクラスを含む、以前のバージョンのmobicentsクラスの一部が含まれていました。

これが問題の原因でした。ケースはクローズされたと思いますが、それでもダニエルRヒックスにそれを正しくしてくれたことに感謝します。

于 2011-11-17T16:40:18.670 に答える