2017-02-20 12 views
0

このトピックに関する十分な調査は行っていますが、このボードは唯一の希望です。oracle weblogicでjavassistを使用しています

oracle weblogic 11cで実行されているデプロイメントがいくつかありますが、デプロイメント・コードで変更する必要があるものがいくつかありますが、コードを変更することは許可されていません。好ましくはジャワシスト。

私はデプロイメントコードにアクセスできます。変更する必要がある行を正確に知っています。どのような最善のアプローチは、javassistの任意の構文をコード内の特定の行を置き換えることができますか?

答えて

1

ルックhereを持って:(行番号テーブルをクラスファイルに含まれている場合)、行番号によって指定された位置にコード断片を挿入

も可能です。 CtMethodおよびCtConstructorのinsertAt()は、元のクラス定義のソースファイル内のソーステキストと行番号を取ります。ソーステキストをコンパイルし、コンパイルされたコードを行番号に挿入します。

つまり、あなたが使用しようとしているフレームワークがあなたの要件をサポートしているようです。残りは座って実験をしています。

あなたのコメントについて:あなたはたぶん弾丸を片付け、1行の変更について忘れているかもしれません。代わりに、次の指示に従います。

CtMethodとCtConstructorは、メソッド本体全体を置換するためのsetBody()を提供します。

意味:フレームワークは、方法にコンテンツを追加します。を意味します。 を置き換えてください。方法本体の部分を置き換えるものではありません。

+0

はい、それは挿入されますが、古いコードはそこに残っています。交換する必要があります – stef

+0

私の更新を見てください。 – GhostCat

関連する問題