まさぶんの部屋

copyright by えびぞう

目次

Blog 利用状況

ニュース

  • わんくま同盟
  • 書庫

    ギャラリ

    VBからJ2EEにアクセスしたい

    J2EEで動作しているアプリケーションに

    別のVBシステムからアクセスしてデータを

    受け取りたいのですが、可能なのでしょうか?

    #インターフェイスが思いつきません

     

    投稿日時 : 2008年10月27日 1:13

    コメントを追加

    # re: VBからJ2EEにアクセスしたい 2008/10/27 1:45 中博俊

    XML Webサービス経由ですね

    # re: VBからJ2EEにアクセスしたい 2008/10/27 7:16 はつね

    IIOPかSOAP(XML Webサービス)ですね。

    # re: VBからJ2EEにアクセスしたい 2008/10/27 11:15 まさぶん

    すみません。どこかに判りやすい
    資料は無いでしょうか?

    # re: VBからJ2EEにアクセスしたい 2008/10/27 13:48 凪瀬

    SOAPはいろいろな意味でヘビーなのでXML-RPCぐらいにしておくほうがいいかもなぁ。
    サーバサイドにAXISとかのSOAPのフレームワークを置くことになるんだけど、これがなかなかしんどい。
    自分はVBAと通信させる羽目に陥ったんだけど、Soap Toolkitがかなり腐っててデータ型とかはVBAの事情に合わせる必要があったり。
    .NetなVBだとマシなのがあるんじゃないかと期待するところだけど、その辺は詳しくない。

    XML-RPCならサーバサイドはXML書き出すだけなのでJSPで出力でも大丈夫。これもVBサイドのライブラリはよくわかんないけど。

    # re: VBからJ2EEにアクセスしたい 2008/10/28 16:40 まさぶん

    サーバ側の修正が必要ですが
    HTTP要求の送信とHTTP応答の受信が簡単そうでした。

    Dim http As New MSXML2.XMLHTTP30Class
    http.open("GET", "http://www.ne.jp/asahi/hishidama/home/tech/index.html", False)
    http.send()

    AxWebBrowser1.Navigate("about:blank")
    AxWebBrowser1.Document.write(http.responseText)

    open()でHTTPのメソッド(GETやPOST)、要求の送信先、同期モードを指定する。
    同期モードは、send()の呼び出しが「応答を待たずにすぐ戻る」「応答が来るまで戻らない」を選択する。Falseだと応答が来るまで戻らない。

    send()を呼ぶとHttpRequestが送信され、HttpResponseが返ってくる。

    戻ってきたレスポンスは、responseText(文字列)・responseBody(バイト配列)・responseStream(ストリーム)といった形で取得できる。
    文字列の場合はUNICODEでないと文字化けする(VB内部がUNICODEだから)。その場合はresponseBodyからUNICODEへ変換してやる。

    このレスポンスの文字列をWebBrowserに渡すとブラウザーに表示することも出来る。

    タイトル
    名前
    URL
    コメント