代码之家  ›  专栏  ›  技术社区  ›  pastafarian

包装salesforce web服务调用的SpringBean

  •  1
  • pastafarian  · 技术社区  · 16 年前

    我正试图找出如何创建一个无状态spring bean,它封装了对salesforce web服务API的一组调用。我的理解是,呼叫salesforce的流程如下:

    1. 打一系列服务电话
    2. 呼叫注销

    要使用无状态包装器,似乎正确的模式是让bean中的每个方法执行以上三个步骤。e、 g.(伪码)

    binding.login();
    binding.upsert(….);
    binding.upsert(….);
    binding.logout();
    

    这是个好做法吗?仅仅保持bean的无状态似乎是一种代价高昂的方法。在这种情况下,制作bean request scope

    2 回复  |  直到 16 年前
        1
  •  1
  •   rtompkins    14 年前

    我同意Anup,你应该看看sfdc的wsc。

    如果您想完全无状态化,那么您需要了解以下有关salesforce连接的内容。

    1. 每个操作必须具有有效的SID(会话id)才能完成操作。

    然后,您可以将该端点/sid放入一个单例中,并与任意数量的springbean共享它。在每个bean中,您需要创建一个新的SoapBindingStub,并在执行insert/upsert/update/etc.操作之前设置端点和sid。

    该sid将在一段时间的不活动(根据设置从30到120分钟不等)后过期,因此您应该捕获任何异常并使用singleton对象重新登录。

    不要担心两个bean同时导致singleton重新登录,因为salesforce将把sames sid返回给这两个bean。

        2
  •  0
  •   Anup    16 年前

    SFDC WSC 图书馆?它易于使用,并且适合您试图完成的用例。