- PR -

AXIS C++ でのSOAPメッセージ出力

1
投稿者投稿内容
さんこん
会議室デビュー日: 2006/07/08
投稿数: 3
投稿日時: 2006-07-08 02:52
こんばんわ。
とても簡単な質問かもしれなく申し訳ないのですが、調べても分からなかった為、
この場をお借りして質問させて頂きます。

windowsXP、AXIS C++(1.6b)とApache(2.0)、XMLパーサーはxerces C++(2.0.0)を
使用してSOAP環境をC++で構築しております。
そしてSAMPLEプログラムであるcalculatorのプログラムを起動することはできました。
(wsdlのtypeはRPCです。)

そこでクライアントからサーバー(逆もしかり)へ送られているSOAPメッセージを
TCP MonitorなどのツールではなくプログラムからのFILE出力、またはコマンド
プロンプトの画面へ表示させたいのですがその方法がわかりません・・。

SOAPメッセージを取得可能であればあとはprintfやfprintfなどで表示、出力可能かと
思うのですが・・。
serverHandlerなどサンプルであるものは色々試してはみたのですが、どうしても表示されません。

申し訳ありませんが、どなたかご存知の方ご返答の程よろしくお願い致します・・。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2006-07-09 15:23
Xerces-C++ Version 2.7.0
http://xml.apache.org/xerces-c/index.html#features
xerces C++(2.0.0) って いつ頃のもの

http://hp.vector.co.jp/authors/VA024451/cppdocuments/xercesc/startup.html

[ メッセージ編集済み 編集者: MMX 編集日時 2006-07-09 15:31 ]
さんこん
会議室デビュー日: 2006/07/08
投稿数: 3
投稿日時: 2006-07-10 01:20
ご回答ありがとうございます。

>Xerces-C++ Version 2.7.0
なのですが、初めはこのバージョンを使用していたのですが、apacheが立ち上がらず
色々調べてみるとどうやらaxis-c-1.6bでは、axiscpp.conf内に設定する
「AxisXMLParserXerces.dll」がXerces2.0.0を指定しているらしく・・・。
Xerces2.0.0にしたらうまく起動した為にこのバージョンを使用していました。
Xerces-C++ Version 2.7.0 とした場合にSOAPメッセージを取得できるような何かが
追加されているのでしょうか・・。

>http://hp.vector.co.jp/authors/VA024451/cppdocuments/xercesc/startup.html
すいません。私の質問が悪かったです。
私が行いたいことは「SOAPメッセージを出力する」です。
TCP Monitorにて表示されるようなメッセージをソース内で取得、
またはファイル出力することは不可能なのでしょうか・・。
以下に例を記述させて頂きます。
※あくまで例ですので。私の環境でこのメッセージが出力されているわけではありません。

-----------------------------------------------------------
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<t:Transaction xmlns:t="http://baseball.azb.co.jp/Apache/" SOAP-ENV:mustUnderstand="1">
5
</t:Transaction>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:getPitchingResult xmlns:m="http://baseball.azb.co.jp/Apache/DataStore/">
<m:name>Akinobu Yoshida</m:name>
<m:No>00</m:No>
</m:getPitchingResult>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
-----------------------------------------------------------
クライアントからだと上記のようなSOAPメッセージがサーバーに送られていると
思います。このSOAPメッセージをそのままファイル出力、もしくはコマンドプロンプトに表示させたいのです・・・。
SOAP + AXIS C++情報が少なすぎて・・。申し訳ありませんがよろしくお願い致します。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2006-07-10 13:58
Axis C++を使おう
http://www.emaki.minidns.net/Programming/tools/axis_cpp/index.html
axis 1.5(2006/03/01現在)、は他にXercesのバイナリが必要になります。
# Xerces 2.2.0のダウンロードアーカイブに入っている、xerces-c_2_2_0.dllを[Axis_Folder]/libへコピーします。

axis-c-1.6b で Xerces2.0.0 と後退するとは、思えません。

Xerces C++では DOM3 のSaveは動くか?(Java版は動く)
DOM出力の便利機能は まだと思います。
=========================
というか、定義から スタブを発生させ、それどうしで 送受信するから
下位レベルの関心は、Axis 開発者しかないはずだ。
Webサーバーの 機能で キャッチできるかも

[ メッセージ編集済み 編集者: MMX 編集日時 2006-07-10 18:39 ]
さんこん
会議室デビュー日: 2006/07/08
投稿数: 3
投稿日時: 2006-07-10 23:47
MMX様、度々のご返答ありがとうござます。

>axis-c-1.6b で Xerces2.0.0 と後退するとは、思えません。
すいません。仰るとおりです。Xercesのバージョンを書き間違えていました。
実際に使用しているのは「Xerces 2.2.0」です。
お騒がせして申し訳ありません。

>Xerces C++では DOM3 のSaveは動くか?(Java版は動く)
これについては少々調査してみます。

>というか、定義から スタブを発生させ、それどうしで 送受信するから
>下位レベルの関心は、Axis 開発者しかないはずだ。
確かに・・。やはり無理そうですね。
ソース内で確信を持つならwsdlのtypeをMSGにして自分でメッセージ構築
しかなさそうですね・・。

ありがとうございました。
1

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