WSDLを利用してWebサービス経由でSFDCにログインし、様々な情報を取ってきたり、レコードを作成したりしました。今回は、自分で、Apexコードで何かを行うクラスを作成し、それをWebサービスとして公開した後、それを外部のJavaプログラムから呼び出すことをやってみたいと思います。Apexを使った大量一括処理を行うことも比較的楽になると思います。JavaのAPサーバからSalesforce側にあるデータを取得したり、SFDC外部サイトのユーザアクションから、Salesforceに一連のデータを登録・更新することも簡単になります。呼び出し側のコードSFDCにWebサービスを作成するはじめに呼び出すWebサービスをSFDCに作成します。今回は以下のような「MyWebServiceClass」を作成しました。Webサービスで公開するメソッドは「myCalledMethod」とし、呼び出し側からは文字列型の変数を渡すことにします。戻りの型は、サンプルとして作成した「MyInfo」というクラスにします。自作のクラスでも呼び出しの引数、戻りとして使用できるという例のためですので、普通に文字列や数値型でもいいですよ。}クラスを作成したら、「WSDLの作成」ボタンを押して、wsdlファイルを作成、適当な名前でPCに保存します。今回は「MyWebServiceClass.wsdl」としました。WSDLファイルは公開するWebサービスの情報を定義したものです。後ほど、このファイルを元に、JavaからWebサービスに接続するためのクラスを生成します。呼び出し側のコードそれではJavaからの呼び出しを行ってみます。Eclipseで前回の「Salesforceに接続して、オブジェクト加工等を行うEclipseプロジェクトのテンプレート」という記事を参考に、雛形のプロジェクトがあることを前提とします。はじめに、スタブ・クラスの生成を行います。.libwebservice_stub.jarというコマンドをコマンド・プロンプトから打ちます。PCに保存した「MyWebServiceClass.wsdl」を元に、クラスを生成し、「webservice_stub.jar」としてまとめるというコマンドです。雛形で用意した、「partner.jar」と「webservice_stub.jar」がクラスパスに入っていることを確認しましょう。「webservice_stub.jar」には今回作成したMyWebServiceClassのWebサービスを利用するために特化したクラス群が含まれています。呼び出しのクラスはこのような感じになります。}はじめにPartnerConnectionを使ってログインを行い、その後、SoapConnectionで自作のWebサービスを呼ぶ流れになっています。com.sforce.soap.MyWebServiceClass.SoapConnection.myCalledMethod(SoapConnection.java:178)のようなエラーが表示されるかもしれませんので、気をつけてください。相談はお気軽にSalesforceについての疑問やお悩みはお気軽にお問合せください。Salesforce歴の9年の私が相談に乗ります。ご連絡はこちらのお問合せフォームから>>こんな記事も読まれていますコメントを残す返信をキャンセルする。Reserved.このページの先頭へ。