質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SOAP

SOAP(Simple Object Access Protocol)はウェブサービス実装においての構造化された情報をやり取りするためのプロトコル規定です。

Q&A

0回答

2299閲覧

java SwAかMTOMで添付ファイルを受信するwebサービスの作成方法

atyu

総合スコア11

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SOAP

SOAP(Simple Object Access Protocol)はウェブサービス実装においての構造化された情報をやり取りするためのプロトコル規定です。

0グッド

0クリップ

投稿2017/12/26 02:05

###前提・実現したいこと
javaでwebサービスを作成しています。
クライアント側は作成済で、あとはサーバー側を作成するのみなのですが、
ネット上の情報が少なくどのように実装していいのかわかりません。

下記に書いたように、見よう見真似でコードを書いてみましたが、上手くいきませんでした。

どなたか、詳しい作成方法が掲載されているサイトや本、実際のコードなど何でもいいですので、お知恵を貸してください。

<やりたいこと>
・SOAP通信
・SwAかMTOMで添付ファイルを受信
・受信した添付ファイルをサーバーに保存

<環境>
axis2、eclipseを使用しています。

###試したこと
以下のようなwebサービスを作成し、試してみましたが、いずれもDataHandler valueがnullになってしまいます。

【1】
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.activation.DataHandler;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.ParameterStyle;
import javax.jws.soap.SOAPBinding.Style;
import javax.jws.soap.SOAPBinding.Use;
import javax.xml.ws.BindingType;

import org.apache.commons.io.IOUtils;

@WebService(targetNamespace = "http://WebScanPrint/ExampleNamespace/StrageService", serviceName = "CtrlService")//)
@SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL, parameterStyle = ParameterStyle.BARE)
@BindingType(value = javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_MTOM_BINDING)
public class Ctrl {

public void sendBinary( String FolderName, String DocumentName, DataHandler value) { FileOutputStream fos = null; try { fos = new FileOutputStream(new File("/tmp/" + DocumentName + ".pdf")); value.writeTo(fos); } catch (IOException e) { e.printStackTrace(); } finally { if (fos != null) { IOUtils.closeQuietly(fos); } } }

}

【2】
import java.io.File;
import java.io.FileOutputStream;

import javax.activation.DataHandler;
import javax.jws.WebService;
import javax.xml.ws.BindingType;

@WebService(targetNamespace = "http://WebScanPrint/ExampleNamespace/StrageService", serviceName = "CtrlMTOMService",portName = "CtrlMTOMPort")//)
@BindingType(value = javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_MTOM_BINDING)
public class CtrlMTOM {

public void sendBinary(String FolderName, String DocumentName, DataHandler value) { try { FileOutputStream fileOutputStream = new FileOutputStream( new File("/tmp/mtom_result.pdf")); value.writeTo(fileOutputStream); fileOutputStream.close(); } catch (Exception e) { e.printStackTrace(); } }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ketztaro

2017/12/29 00:33

valueがnullということは、sendBinaryの呼び出し元でnullを入れているということだと思うので、調査には呼び出し元のソースが必要だと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問