2011-02-07 17 views
1

私はJava開発で相対的に新しいです。 私はいくつかの入力を受け取り、PDFを生成するWebサービス(jax-ws)/ webアプリケーションを作成したいと思っています。ブラウザに表示されます。私はpdf(itextを使用して)を作成し、サーブレット(FileInputStreamなど)を使用してbroswerで開きます。 しかし、Webサービスからサーブレットを返す方法はわかりません。 私は何をしなければならないので、サーブレットを介してpdfを受け取るようにWebサービスを呼び出すとしますか?WebサービスからブラウザのPDFを返す

答えて

1

サーブレットからPDFを返却した場合は、サーブレットがPDFストリームを出力として送信し、コンテンツタイプを「application/pdf」と設定している可能性があります。これはブラウザで正常に動作し、これは正しい方法です。

ただし、ブラウザからWebサービス(JAX-WSか他のスタックかに関係なく)を簡単に呼び出すことはできません。 Webサービスコールには、POSTと厳密に定義されたSOAPコンテンツが必要です。ただし、AJAXを使用してWebサービスを呼び出すことはできますが、これは別の話です(RESTも参照してください)。

Webサービスからバイナリデータを返す場合(WebサービスはWebブラウザを使用する人間ではなく、マシン用であることに注意してください)、2つのオプションがあります:base64を使用してバイナリデータをシリアル化するか、 HTTPレスポンス(MTOM標準、例:http://www.mkyong.com/webservices/jax-ws/jax-ws-attachment-with-mtom参照)。

+0

ありがとうございます。したがって、クライアントにpdfを渡してWebサービスを使用するには、生成されたpdfをstream/byte arrrayを使用してWebサービスのメソッドを使用してアップロードする必要があります。次に、このバイト配列をbase64(?)にエンコードされた文字列に変換し、文字列をWebメソッドの戻り値の型として返しますか? その後、Webサービスクライアント(サーブレットなど)は、最初にpdfをアップロードするのと同じロジックを使用してデータを取得しますか? – Manos

関連する問題