【最大10000ポイント】当たる!!質問投稿キャンペーン!

Javaで作られている外部のWEBサービスに、VB.NETのWindows
アプリケーションからアクセスして戻り値を取得したいのですが、
方法がわかりません。
(ASP.NETのWEBアプリ開発において、WEBサービスをオブジェクト
として登録し、呼び出すということはやったことがあるのですが、
今回はあくまで、Windowsアプリケーションから要求を投げたいんです)

ご存知の方、実現方法のヒントをご教授ください。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

Webサービスにも色々な種類があります。



プロトコルで、REST, SOAP, RPCなど
データ形式で、XML, JSON, HTML, CSV, プレーンテキストなど

SOAP/XML Webサービス + WSDL
http://www.atmarkit.co.jp/fdotnet/dotnettips/298 …

REST/XML Webサービス
http://www.atmarkit.co.jp/fdotnet/vsexpress/vsex …
    • good
    • 0
この回答へのお礼

todo36様
ご回答いただき、有難うございました。
SOAP通信が自分の実現したいことでした。
単純に、何かのオブジェクトのメソッドを実行する、だけでは
ないようですね。勉強します。

有難うございました。

お礼日時:2008/03/12 09:29

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QCloseとDisposeの違い

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、タイマーコントロールのイベントに記述していますと、それは実行され続けます。

これを防ぐために、Me.Dispose() を使います。すると、きれいにプロセスは終了し、イベントは発生しない模様です。

そこで、「フォームを閉じる」意味のMe.Close() をすべてMe.Dispose() に変えてしまいました。確実にプロセスを破棄出来ると思ったからです。Webで調べると、違いは「再利用できる、できないの違い」という答えがありましたが、それはきっと、ファイルやオブジェクトのことで、フォームの場合は、再びShowまたはShowDialogで表示させることは可能でしたので、特に問題は感じていませんでした。

ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。Me.Close() に変えるとうまくいきました。

わけわからなくなってきました。。。

ちなみに、その残ったフォームは、スタートアップフォームであり、別のフォームからShowまたはShowDialogメソッドで呼び出したものではありません。

ここで4つの仮説を立ててみました。

1. ShowDialogで呼び出したフォームは、Me.Dispose()、Showで呼び出した、あるいは、スタートアップフォームは、Me.Close() すれば破棄できる

2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

3. 呼び出し方ではなく、別の要因が存在する

4. 併記する必要がある場合がある

Me.Close()
Me.Dispose()

または、

Me.Dispose()
Me.Close()



どれが正しいのでしょうか?どなたがご存じの方がいらっしゃいましたら、ご教授いただけませんでしょうか? どうぞよろしくお願い申し上げます。ありがとうございました。

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、...続きを読む

Aベストアンサー

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。
Me.Close() に変えるとうまくいきました。

通常はどちらでもうまくいきます。

>2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

ShowDialogの場合は、メソッド内部で、ハンドルが破棄されているため、Close()メソッドの際にDispose()メソッドが呼び出されます。

>3. 呼び出し方ではなく、別の要因が存在する

そう思います。

>4. 併記する必要がある場合がある

インスタンスを明示的に破棄したほうがよい場合は多く存在します。
Disposeが使えるメンバはIDisposableをインターフェースとして持っているメンバです。
これらのメンバは、外部とのやり取りを行うものが多くあります。
たとえばSQLClientに含まれるようなメンバです。

外部とのコネクションを確実に破棄を保障してほしいなどという場合がありますよね、このようなときに使用します。

Using構文を使用するのとまったく同じ理由になります。
正確にはUsing構文を使用できるメンバには条件があります、IDisposableをインターフェースとして持っているメンバに限るというものです。

ほかにもガーベージコレクタによるファイナライズを伴うかどうかという違いがあります。
Disposeの場合はファイナライズが同時に行われるため、使用していたメモリ空間を開放することができます。

上記のような理由により、
Me.Close()
Me.Dispose()
は両方書いたほうがよいと思います。

蛇足ですが、
Me.Dispose()
Me.Close()
はエラーになります。
Me.Dispose()により、Me本体(インスタンス)は削除されてしまいます。
存在しないMeに対してCloseメソッドを要求することはできないためです。

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリ...続きを読む

Q更新ロックとデッドロック

データベースを勉強中の者です。ロックの種類についてどなたかご教示いただけますでしょうか。

ロックの種類は、次の三種類ですよね。

・共有ロック
・排他ロック
・更新ロック

共有ロックの意味は理解できていると思うのですが、更新ロックがよくわかりません。
更新ロックにすると次のように動作するそうですね。

1.更新を前提にして共有ロックをかける。
2.更新する前に排他ロックに切り替わる。

排他ロックも更新時に使うロックですが、排他ロックと更新ロックの違いというか、使い分けがよくわかりません。
データを更新するためには排他ロックをかけないといけないのはわかりますが、その前に共有ロックをかける意味は?

http://f29.aaa.livedoor.jp/~snaka/PukiWiki/PukiWiki.php?SQLServer%2F%A5%ED%A5%C3%A5%AF#na5d5d64

上のサイトを読んで「デッドロックを回避するため」といったんは理解したのですが、上司は「更新ロックとデッドロックは関係ない」と言います。

私の解釈が間違っているのでしょうか。それとも上司?

データベースを勉強中の者です。ロックの種類についてどなたかご教示いただけますでしょうか。

ロックの種類は、次の三種類ですよね。

・共有ロック
・排他ロック
・更新ロック

共有ロックの意味は理解できていると思うのですが、更新ロックがよくわかりません。
更新ロックにすると次のように動作するそうですね。

1.更新を前提にして共有ロックをかける。
2.更新する前に排他ロックに切り替わる。

排他ロックも更新時に使うロックですが、排他ロックと更新ロックの違いというか、使い分けがよくわかり...続きを読む

Aベストアンサー

sqlcmdのプロンプトを二つ立ち上げて
(トランザクション1)
begin tran
go
select * from テーブル with ( updlock ) where 条件
go

(トランザクション2)
update テーブル set 項目 = ~ where 条件
go

として見てください。トランザクション2は待ちになります。
トランザクション1のselect文の with ( updlock ) を取ると待ちになりません。

QDataGridViewで指定したセルの値を取得

こんにちは。

VB2008のDataGridViewで指定したセルの値を取得をする方法がわかりません。
どなたか教えてください。

Aベストアンサー

こんばんは.

 Dim Data As String
 Data = Me.DataGridView(0, 2).Value
 MsgBox(Data)

みたいな感じで取れないですかね???

QASP.NETから Java classファイル

ASP.NETから、Java CLASSファイルを実行するやり方が
わかりません。

このクラスファイルを使用し、引数として文字列を渡し、戻値を受け取って

ページに結果を表示させることを考えています。

ご存じの方が居ればご教授いただきたく。

よろしくお願いいたします。

Aベストアンサー

んー。両システムの間がどうなっているかによって選択肢が変わるかと。

インターネット越しならSOAP。jvm側をWebホストから動かせるのであれば、今どきならRESTfulが主流かな。

LAN内接続、あるいは仮想マシンで分散オブジェクト通信をしたいのであれば、.NETの立場でいえば、JNI(Java Native Interface)対応の実装であるjni4net使うのが理想かと思います。

jni4netは開発されたばかりでバージョンが浅いため、オブジェクトのシリアライズに問題があったり、Java側のの実装が面倒(インターフェースの仕様次第では)だと聞きますので、簡単な呼び出しからテストすべきかと思います。

jni4net
http://jni4net.sourceforge.net/

QIISでローカル内からhttp://localhostと入れても表示されない

windows2000 server で「既定のWebサイト」上でサービスを開始させました。
ちゃんと表示されるかと思いインターネットエキスプローラを開き
http://localhost と入力して表示されるか試したのですが、下記のようなメッ
セージが表示され閲覧する事ができません。
何か打開策はありますでしょうか?





エラー
リクエストされた URL は取得できませんでした

--------------------------------------------------------------------------------

以下の URL を取得した際に: http://localhost/

次のエラーが発生しました:

以下のホスト名の IP address を調べられません. localhost
DNS サーバが以下のエラーを返しました:

Name Error: The domain name does not exist.
この意味は次の通りです:

キャッシュは URL 中のホスト名から IP address を調べることができませんでした.
アドレスが間違っていないか確認してください.

windows2000 server で「既定のWebサイト」上でサービスを開始させました。
ちゃんと表示されるかと思いインターネットエキスプローラを開き
http://localhost と入力して表示されるか試したのですが、下記のようなメッ
セージが表示され閲覧する事ができません。
何か打開策はありますでしょうか?





エラー
リクエストされた URL は取得できませんでした

--------------------------------------------------------------------------------

以下の URL を取得した際に: http://localhost/ ...続きを読む

Aベストアンサー

>しかしなぜlocalhostでは表示されないのでしょうか?

DNSの仕組みに関係します。
localhostと言う名前から127.0.0.1というIPアドレスを求めるのがDNSの役割です。
その際、WindowsNT/2000/XPのDNSサーバはhostsファイルを参照します。(hostsにない名前は、さらに上位のDNSサーバに問い合わせます。)
localhostという名前は特殊なので、hostsがその情報を持っていなくてはならないのです。

今回のケースではhostsが存在しないようなので、hostsをメモ帳で作成する手順をご紹介しておきます。 (説明の都合上、Cドライブのルートディレクトリで作業します。)
(1)次のファイルが存在するか確認してください。
C:\WINNT\system32\drivers\etc\hosts.sam
 ・存在する→Cドライブのルートディレクトリにhosts.txtと言う名前でコピーし、メモ帳で開く。
   copy C:\WINNT\system32\drivers\etc\hosts.sam c:\hosts.txt
   notepad c:\hosts.txt
 ・存在しない→メモ帳でc:\hosts.txtを新規作成する。
   notepad c:\hosts.txt

(2)次の1行をhosts.txtの最後に追加します。127.0.0.1とlocalhostの間には半角スペースを7つ以上入れ、行のおしりには改行を入れます。
127.0.0.1 localhost
     ↑     ↑
     |    改行
 半角スペースx7

(3)hosts.txtを上書き保存します。

(4)hosts.txtをシステムディレクトリに移動します。この際に拡張子txtを取り除きます。
move c:\hosts.txt C:\WINNT\system32\drivers\etc\hosts

(5)Windowsを再起動します。

以上がその手順です。
これでlocalhostが127.0.0.1として認識されるはずですが、システムディレクトリをいじりますので慎重に作業してください。
作業手順が理解できない場合、作業に不安を感じる場合はやらないほうが無難です。

>しかしなぜlocalhostでは表示されないのでしょうか?

DNSの仕組みに関係します。
localhostと言う名前から127.0.0.1というIPアドレスを求めるのがDNSの役割です。
その際、WindowsNT/2000/XPのDNSサーバはhostsファイルを参照します。(hostsにない名前は、さらに上位のDNSサーバに問い合わせます。)
localhostという名前は特殊なので、hostsがその情報を持っていなくてはならないのです。

今回のケースではhostsが存在しないようなので、hostsをメモ帳で作成する手順をご紹介しておきます。 (説明の...続きを読む

QVBでグローバル変数を宣言するには

VB初心者ですが。クイズゲームのようなものを作成したいと考えてます。
Private Sub ~ End Sub の中で宣言した変数って他のところに呼び出したり(戻り値として渡す)出来るのでしょうか?
どこでも、いつでも呼び足せるグローバル変数の宣言とはどのようにやるのか、具体的に教えていただけないでしょうか?

Aベストアンサー

>Public a as Integerのように宣言して、初期化するにはどのように記述を行えばよいですか?

>Public a As Boolean = 0
のように記したら”コンパイルエラー”と出ました。

Booleanって整数値取れたかなと思いつつ。
Sub~End Sub内でa = 0を代入したりしてください

扱おうと言うことがあるかどうか疑問だけど

Public Const a As Integer = 10 'グローバルな定数の宣言

QForm間の値の渡し方

1つのForm上のコマンドボタンで別のFormを表示、そこで変数に値を入れ、そのFormを閉じ、元のFormでその変数を使いたいのですが、どうもうまくいきません。
実施したやり方は、一方のFormの宣言領域で、”Public abc As String”を宣言、両方のFormの(変数に値を入れた方と変数を使う方の)プロシージャーの宣言では引数として(abc As String)と記述しました。
因みに、両プロシージャーともイベントプロシージャーです。何か基本的なことができていないのだとは思いますが、どなたか教えていただけませんか?よろしくお願いします。

Aベストアンサー

すでに何件か回答があがっていますので、少し変わった方法をご参考までに。

あまり使われませんが、Formにはtagというプロパティがあります。
これは「文字列形式であれば何でも格納できる」という、上手く使えば便利なプロパティです。

FormAからFormBを呼び出し、FormBで変更した値をFormA.tagにセットします。
ここでFormBをUnloadしてもFormA.tagの値は影響を受けないので自由に使えます。

複数の値を呼び出し元に戻してやる場合に、区切り文字(カンマなど)で連結した文字列をtagに格納し、呼び出し元で区切り文字でsplitして、複数の値を受け渡すという手法をよく使っています。

Qbatファイルからsql文実行

クライアントOS:WIN2000
Oracle:9i(サーバ(UNIX)上にあります)

現在、クライアントからbatを起動し、SQL文を投げ、結果を取得したいと思っております。
(SQL文は単純にTBLをカウントしているだけです)

・batの中身
sqlplus %UID%/%PASS%@%SID% @test.sql > output

結果は取得出来るのですが、余分な情報も結果に出力されてしまいます。結果のみを出力させるにはどうすればよろしいでしょうか?

・余分な情報
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
に接続されました。

Aベストアンサー

sqlplus に -S オプションを追加してみればどうでしょうか。

参考URL:http://biz.rivus.jp/sqlplus_overview.html

QHTTPサーバーへPOST要求を送信について

はじめまして、ひろです。
VisualBasic 2008 .NETでHTTPサーバーへPOST要求を送信する
プログラムを作成しているのですが、うまく動作しません。
仕様書でクライアントからサーバーへ
要求URL:https://ABC.co.jp
要求HEADER:POST https://ABC.co.jp HTTP/1.0
要求BODY:A=1234
POST要求するよう指示されているのですが、
下記のようなプログラムではERRORが返ってきます。
問題ある箇所がわかる方いらっしゃたら、
教えてほしいのですが。
よろしくお願いします。

Sub aaabbb()
Dim objXML As Object
Dim strXMLDoc As String
Dim intRet As Integer
Dim strURL As String
Dim strKey As String

strURL = "https://ABC.co.jp"
strKey = "A=1234"

objXML = CreateObject("MSXML2.ServerXMLHTTP")
objXML.open("POST", strURL, False)
objXML.send(strKey)
strXMLDoc = objXML.responseText
intRet = objXML.status
objXML = Nothing
End Sub

はじめまして、ひろです。
VisualBasic 2008 .NETでHTTPサーバーへPOST要求を送信する
プログラムを作成しているのですが、うまく動作しません。
仕様書でクライアントからサーバーへ
要求URL:https://ABC.co.jp
要求HEADER:POST https://ABC.co.jp HTTP/1.0
要求BODY:A=1234
POST要求するよう指示されているのですが、
下記のようなプログラムではERRORが返ってきます。
問題ある箇所がわかる方いらっしゃたら、
教えてほしいのですが。
よろしくお願いします。

Sub aaabbb()
Dim objXML As ...続きを読む

Aベストアンサー

>下記のようなプログラムではERRORが返ってきます。

どこで、どのようなエラーが帰ってくるのでしょうか?

httpsと言うことなので、公開鍵証明書(cer)が必要なんじゃないかな。

QSQL Server のキャラクターセット(内部文字コード)は何処で定義するのでしょうか?

SQL Server超初心者です。(Oracleについては約1年ちょっとの経験はあります)どうぞよろしくお願いします。
今回SQL Server2005 を使って簡単なシステムを構築する事になりました。
SQL Serverが扱う文字コートについて教えてください。
Oracleを使っていた時の経験としてDB内部のキャラクターセットと
クライアントで使う文字セット(NLS_LANG)を意識しておかないと、いろんな「文字化け」問題に遭遇した時に対応できませんでした。
きっとSQL Serverにおいても同じような事ではないかと思いここに質問させていただきます。
以下2点についてどなたかコメント願います。
1.(Oracleでいうキャラクターセット)はどこで定義するのでしょうか?
2.OracleでいうNLS_LANGに相当するものはあるのでしょうか?
 (ひょっとしたらマイクロソフト製品なのでサーバもクライアントもCP932固定なのでしょうか?)

根本的にはシステム構築する上で『極力文字化けに遭遇したくない』思い出このような質問をさせていただきました。
『文字化け』について注意点などありましたら合わせてコメントいただければ助かります。
以上よろしくお願いします。

SQL Server超初心者です。(Oracleについては約1年ちょっとの経験はあります)どうぞよろしくお願いします。
今回SQL Server2005 を使って簡単なシステムを構築する事になりました。
SQL Serverが扱う文字コートについて教えてください。
Oracleを使っていた時の経験としてDB内部のキャラクターセットと
クライアントで使う文字セット(NLS_LANG)を意識しておかないと、いろんな「文字化け」問題に遭遇した時に対応できませんでした。
きっとSQL Serverにおいても同じような事ではないかと思いここに質問...続きを読む

Aベストアンサー

Windowsのロケールの設定を日本語にした状態でSQLServerをインストールした場合、cp932がデフォルトの照合順序になります。照合順序については参考URLをご覧下さい。

SQLServerではわかりませんが、PostgresではJDBCドライバ部分で変換していたように記憶しています。ODBCドライバではAutoTranslateという機能があります。

このため、ODBC接続で何も考えずにvarcharを使用するとcp932になります。

参考URL:http://www.microsoft.com/japan/msdn/sqlserver/sql2005/bb330962.aspx


人気Q&Aランキング