Java EE 5 Web アプリを維持する必要があります。このアプリの一部は、Web サービス (WSDL コントラクトを使用) を介したメッセージの交換です。wsdl は、Eclipse wsdl2Java を介して Java クラスを生成するために使用されます (Axis を使用していると思います)。
ここで、Web サービスを介して呼び出すサーバーが非同期で応答できる必要がある変更を実装する必要があります。実際、サーバーは SOAP メッセージ応答ですぐには応答しませんが、しばらくすると、クライアント (Web アプリ) によって公開された Web サービスを呼び出し、最初の呼び出しの SOAP メッセージ応答をこの 2 番目のフィールド (パラメーター) として渡します。 Web サービスの呼び出し。
その後、クライアントは SOAP 応答 (または XML) をファイルに保存します。
この XML または SOAP メッセージ ファイルを使用して、既に生成されている Java クラスを設定する方法はありますか? サーバーの直接応答をシミュレートする方法を意味します (Axis バインディング スタブにフィードします)。
また、JAXB を (XML を Java にバインドするために) 使用しようとしましたが、SOAP メッセージの応答が複雑であるため、JAXBContext を呼び出すと次のエラーが表示されます。
CodPrestazione does not have a no-arg default constructor
このクラスは wsdl2Java によって生成された enum クラスであるためです。
Java クラスに注釈を付けたり変更したりせずにこのエラーを回避する方法はありますか (このクラスは生成されるため、再生成のたびにこのクラスを変更する必要があります)。
- 保存された SOAP メッセージ ファイル (または XML) を使用する最良の方法は何ですか? あるいは、Axis 1.3 を使用して SOAP をデシリアライズするにはどうすればよいですか?