在Salesforce中建立Web Service供外部系統調用

在Salesforce中能夠建立Web Service供外部系統調用,而且能夠以SOAP或者REST方式向外提供調用接口,下來的內容將詳細講述一下用SOAP的方式建立Web Service而且用java的程序進行簡單的調用。java

【注:要想使其成爲web service,那麼class必定要定義成global的,具體的方法要用 webService static 修飾】web

在salesforce中開發-新建apex類。具體內容以下所示json

2):在保存好上述的class以後,咱們到setup --> build --> develop --> apex classes 中找到剛剛保存的class,咱們會發如今對應的Action中有WSDL這個選項,此選項就是Salesforce默認所提供的將Web Service的class轉化成WSDL文件。以下圖所示安全

3):點擊上圖的WSDL按鈕,會看到以下界面,這裏顯示的是生成的WSDL文件的詳細信息,咱們點擊鼠標右鍵,將此文件保存到本地,這裏姑且取名爲AccountWebservice.wsdl測試

4):咱們能夠簡單的建立一個TestWebservice的javaprojectui

將AccountWebservice.wsdl生成AccountWebservice.jarspa

打開cmd 輸入 java -classpath antlr-runtime-3.5.2.jar;tools.jar;st4-4.0.4.jar;force-wsc-45.1.0.jar com.sforce.ws.tools.wsdlc AccountWebservice.wsdl AccountWebservice.jarblog

將jar包導入項目中接口

代碼以下,java中調用webservice中的接口方法ip

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.sforce.soap.AccountWebservice.Account;
import com.sforce.soap.AccountWebservice.SoapConnection;
import com.sforce.soap.enterprise.Connector;
import com.sforce.soap.enterprise.EnterpriseConnection;
import com.sforce.ws.ConnectorConfig;

import net.sf.json.JSONObject;

public class Test {
    static final String USERNAME = "alice.zhu@slipstream.com.cn";                   //Salesforce帳號中的用戶名
    static final String PASSWORD = "#########";    //密碼,這個密碼有點特殊,須要在密碼後面加入安全標記
    static EnterpriseConnection connection;
    public static void main(String[] args) {
        ConnectorConfig config = new ConnectorConfig();
        config.setUsername(USERNAME);
        config.setPassword(PASSWORD);
        SoapConnection sc =null;
         try {
          connection = Connector.newConnection(config);
           config.setServiceEndpoint("https://ap8.salesforce.com/services/Soap/class/AccountWebservice");
           sc = new SoapConnection(config);
          Account[] ss=sc.getAccountList();
          List<Account> resultList = new ArrayList<>(ss.length);
          for (Account account : ss) {
              resultList.add(account);
        }
          Map<String,Object> map = new HashMap<>();
          map.put("total", resultList.size());
          map.put("rows", resultList);
          JSONObject jsons = JSONObject.fromObject(map);
          System.out.println(jsons.toString());
         }catch(Exception e) {
             e.printStackTrace();
         }
    }
    

}

測試

相關文章
相關標籤/搜索