#始めに
C#でSOAP通信を行い、サーバーから取得した値をコンソールに出力するアプリケーションを作ってみます
#実装するモジュールの概略
##クライアント
Webサーバーから取得した値をコンソールに出力する単純なアプリケーションをC#で作ってみます
##Webアプリケーション
アプリケーションサーバーにGlassFish、アプリケーションはJava1.8で作成します
また、GlassFishにDB接続用のデータソース設定を行います
##DBサーバー
Oracle12cを使っています
#実装するモジュールの詳細について
##サーバーアプリの実装
SimpleWeb.java
package simple;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
@WebService
public class SimpleWeb {
@WebMethod
public String sayHello(String name) throws Exception{
return _sayHello(name);
}
private String _sayHello(String name)throws Exception{
try{
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("jdbc/oracle12c");
return ((new QueryRunner())
.query(ds.getConnection(), //コネクションの取得
"select EMP_ID,EMP_NAME from EMP", //実行するSQL zzzz
new ArrayListHandler())
.stream()
.filter(array->array[0].equals("001"))
.map(array -> String.format("従業員ID:%s:従業員名:%s",array[0],array[1]))
.collect(StringBuilder::new, StringBuilder::append, StringBuilder::append)
.toString());
}catch(Exception e){
e.printStackTrace();
return name;
}
}
}
##クライアント(C#)のサービス参照の追加方法について
1.VisualStudioのソリューションエクスプローラーから「Service Reference」を選択し、「サービス参照の追加」を選択する
3.「サービス」の欄に目的のWebサービスが表示されていることを確認する。
サービス名を変更したい場合は「名前空間」の値を変更する、
##クライアントの実装
ConsoleApplication4.cs
using System;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
MyWebService.SimpleWebClient client = new MyWebService.SimpleWebClient();
Console.WriteLine(client.sayHello("test"));
}
}
}