0

http://www.javadb.com/using-a-message-handler-to-alter-the-soap-header-in-a-web-service-client

上記の例では、メッセージ ハンドラ クラスに TestUser(username) と TestPassword(password) をハード コードしました。これらの値を外部化したいと考えています。いくつかの調査の後、 @Autowired と @value を実装できませんでした。これで私を助けてください

4

1 に答える 1

0

ファイル.propertiesがローカル ハード ドライブのどこかに保存されていて、それが KPL (主要なプロジェクトの場所) の 1 つである場合は、次のように簡単に実行できます。

Properties propObj = new Properties ();
FileInputStream fis = new FileInputStream("relative path to your file");
propObj.load(fis);

これを行ったら、 getProperty() または setProperty() を使用して、必要なプロパティにアクセス/変更します。loadFromXML()選択したファイルがファイルである場合は、このメソッドを使用する別の方法もありxmlます。これで問題が解決することを願っています。コントローラー クラスに関係なく、単にファイルをロードするのに問題があるように聞こえるからです。私が正しければ、私が上に書いたことを単に実行するように指示する無限の例をオンラインで見つけることができます:)

@Autowire のようなものを使用するときは、ターゲット クラスの開始前に で注釈を付ける必要があることに注意してください@ContextConfiguration("location_of_file.xml")。applicationContext ファイルを指定する場合、正しい相対パスを取得するのは少し難しいかもしれません。詳細については、こちらを参照し、他のリンクをたどってください。

ところで、アプリケーションのプロパティはアプリケーションの内部にあることを覚えておく必要があります。このため、.propertiesソースコードを変更せずに実行できるように、ソースファイルの外部のファイルに設定されています(私がボロボロを話している場合は誰かを修正してください) !)。 Maven や Ivy などのビルド自動化ツールを使用している場合、a) POM および b) applicationContext.xml ファイルを使用してアプリケーション プロパティが設定されていることを確認する方法があります。このようにして、相対パスがターゲット コンピューター上でうまくいかない場合でも、アプリケーションは故障からさらに切り離されます。これが必要な場合は、POM でのフィルターの設定に注意する必要があります。私は個人的にこれを手動で行ったことはありませんが、数か月前にプロジェクトに取り組んでいたときに、同僚がファイラーを目の前に置いていました。フィルターの設定が間違っていたためにすべてが失敗していたので、これを覚えています。申し訳ありませんが、Google おじさんを使って自分で調べてください。

于 2012-11-21T11:16:30.257 に答える