- PR -

AxisでSOAP Attachmentの方法

投稿者投稿内容
ドナ
常連さん
会議室デビュー日: 2003/07/08
投稿数: 42
投稿日時: 2003-07-13 21:23
はい、typeMappingは設定しています。

---WSDDファイル(deploy.wsdd)-----------------------
<?xml version='1.0' encoding='utf-8'?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:ns1="urn:SimpleAttachmentsServices" >
<service name="SimpleAttachmentsServices" provider="java:RPC" >
<parameter name="className" value="SimpleAttachmentsServices"/>
<parameter name="allowedMethods" value="hello"/>


<typeMapping
languageSpecificType="java:javax.activation.DataHandler"
qname="ns1:DataHandler"
deserializer="org.apache.axis.encoding.ser.JAFDataHandlerDeserializerFactory"
serializer="org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
/>
</service>
</deployment>
kan
ベテラン
会議室デビュー日: 2002/11/28
投稿数: 55
投稿日時: 2003-07-13 22:28
WSDDにおける以下のurn:を削ってみて下さい。
xmlns:ns1="urn:SimpleAttachmentsServices"
ドナ
常連さん
会議室デビュー日: 2003/07/08
投稿数: 42
投稿日時: 2003-07-15 18:41
kanさん、できました!ありがとうございます。
しかし、まだ疑問があります。
クライアントプログラムを作るにあたって
call.addParameter("msg", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("attachments", XMLType.SOAP_ARRAY,ParameterMode.IN);
の"msg"や"attachments"というのはサーバー側の引数で指定されているものだと思うのですが、
サービスのソースプログラムを直接見れないユーザーがどのようにしてこの情報を得れるのですか?
kan
ベテラン
会議室デビュー日: 2002/11/28
投稿数: 55
投稿日時: 2003-07-15 22:59
"msg"や"attachments"というのはWSDLに記述されることになっています。

例えば、samples\stock\GetQuote.javaに記述される以下の部分は
call.addParameter( "symbol", XMLType.XSD_STRING, ParameterMode.IN );

samples\stock\GetQuote.wsdlの以下の部分に対応します。
<message name="GetQuoteRequest">
 <part name="symbol" type="xsd:string"/>
</message>
ドナ
常連さん
会議室デビュー日: 2003/07/08
投稿数: 42
投稿日時: 2003-07-18 11:27
次から次に質問して申しわけないのですが、
サービス側で受け取ってファイルを保存する場合のパスってどうしたらよいのでしょうか?

transformer.transform(new StreamSource(attachments[0].getName()),new
StreamResult(new java.io.FileOutputStream("result.html")));

DataHandler dhSource = new DataHandler(new FileDataSource("result.html"));

return dhSource;

こうするとresult.htmlはC:\WINDOWS\スタート メニュー\プログラム\Apache Tomcat 4.1に保存
されてしまいます。その上そのresult.htmlをnew FileDataSource("result.html")の
部分で見にいく時にエラーが出ます。
ほんとはFileOutputStreamで保存する際に保存場所をwebapps/axis/WEB-INF/classes/にしたいのですが、どう指定したらよいのですか?
kan
ベテラン
会議室デビュー日: 2002/11/28
投稿数: 55
投稿日時: 2003-07-20 04:34
パスは単純にフルパスか相対パスで指定したらよいと思うのですが、うまくいきませんか?
kan
ベテラン
会議室デビュー日: 2002/11/28
投稿数: 55
投稿日時: 2003-07-22 00:31
今更かもしれませんが、
以下からAxisでSOAP with Attachmentsを実装する方法について書かれたPDFをダウンロードできます。
http://www.mail-archive.com/axis-user@xml.apache.org/msg08732.html

スキルアップ/キャリアアップ(JOB@IT)