如何将联系人从 Talend 推送到 Microsoft Exchange?

发布于 2024-10-10 11:40:27 字数 385 浏览 5 评论 0原文

我正在尝试使用 Talend Open Studio 将各种输入源中的联系人同步到 Exchange 2007 服务器中。

我知道 Talend 可以使用 SOAP,EWS 有 WSDL,但遇到了所有问题 试图将两者结合在一起时遇到了各种各样的问题(因为 Exchange 的 WSDL 缺乏 Talend 需要的元素)我不知道这是否是最好的攻击计划,或者我是否应该考虑使用 Talend 构建一个更特定于 Exchange 的插件来自 MS 的 EWS Java API

或者,如果已知这两者都是不可能的,我希望能得到一个解释原因的指针 - 毕竟,所有流行语似乎都在每一侧排列。

I'm trying to use Talend Open Studio to sync contacts from a variety of input sources into an Exchange 2007 server.

I know Talend can talk SOAP, and EWS has a WSDL, but having bumped into all
sorts of problems trying to marry the two together (since Exchange's WSDL is lacking elements which Talend needs) I don't know if that's the best plan of attack, or if I should be looking at building a more Exchange-specific plugin for Talend using the EWS Java API from MS.

Alternatively, if these are both known to not be possible, I'd appreciate a pointer to an explanation as to why - all the buzzwords seem to line up on each side, after all.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

离旧人 2024-10-17 11:40:27

我在 Talend 工作,很乐意尝试为您提供一些帮助,但我本人并不熟悉 Exchange WSDL。我假设来自 Microsoft 等成熟供应商的 SOAP 接口将与 WS-I Basic Profile 兼容,并且应该像任何常规 WS 一样可以轻松地直接调用。您介意尝试以下操作吗:

  1. MS WSDL 中缺少哪些特定元素,或者它是否试图使用某些非标准功能? CXF 完全符合 JAX-WS,并且经过认证符合 WS-I BP,因此我不得不假设发生了一些奇怪的事情。
  2. 从您尝试从 Talend 调用的 Exchange 发布 WSDL。
  3. 使用 CXF 为该 WSDL 创建代理客户端。
  4. 尝试一下并发送错误消息。
  5. 使用 CXF 生成基于该 wsdl 的模拟服务提供者,并运行 CXF 模拟并尝试使用 CXF wsdl 客户端进行测试。这将使您更加确信客户端和 wsdl 没有问题。
  6. 您还可以尝试仅使用 SOAP UI 或针对 Exchange WS 的类似工具生成一个简单的测试用例。

ps:CXF是基于apache的开源。它易于使用,并通过 ASF 套件与 Talend 紧密集成。但您也可以单独使用它来进行诊断。

埃德

I work at Talend and would be happy to try and help you out a bit, but I myself am not familiar with the Exchange WSDL. I would assume that a SOAP interface from an established vendor like Microsoft is going to be WS-I Basic Profile compatible and should be easily invoked directly just like any regular WS. Would you mind trying the following:

  1. What particular elements are missing from the MS WSDL, or is it trying to use some non-standard feature? CXF is fully JAX-WS compliant, and it is certified WS-I BP compliant, so I have to assume something odd is going on.
  2. post the WSDL from exchange that you are trying to invoke from Talend.
  3. create a proxy client for that WSDL using CXF.
  4. Give it a try and send the error message.
  5. Generate a mock service provider based on that wsdl using CXF and run the CXF mock and try against that with the CXF wsdl client. This will give you added confidence that the client and wsdl have no problems.
  6. you can also try generating a simple test case with just SOAP UI or similar tooling against the Exchange WS.

ps: CXF is apache based open source. It is easy to use and has tight integration with Talend via the ASF suite. But you can also just use it by itself for diagnostic purposes.

Ed

临走之时 2024-10-17 11:40:27

我也一直在为此挣扎......
您可以使用 tSoap 来实现此目的。
tWebServiceInput 不适用于我的 EWS

tSoap->tLogRow

例如:

解析给定名称的 tSoap 组件是方法 ResolveNames()
要解析的值 = Thierry

  1. 使用用户名和密码设置“需要身份验证”
  2. 设置端点,例如“https://yourserver/EWS/Exchange.asmx”
  3. 设置 SOAP 操作,
    “http://schemas.microsoft.com/exchange/services/2006/messages/ResolveNames”
  4. SOAP 版本 1.1
  5. 设置 SOAP 消息:
    ...输入以 " 括起来的 Soap 方法。

tSoap 连接到 tLogRow

运行作业。瞧结果...

Starting job xSoap_ResolveNames_LogRow at 13:43 30/05/2012.

[statistics] connecting to socket on port 3682
[statistics] connected
<Header><t:ServerVersionInfo xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" MajorBuildNumber="685" MajorVersion="8" MinorBuildNumber="24" MinorVersion="0" /></Header>|<m:ResolveNamesResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"><m:ResponseMessages><m:ResolveNamesResponseMessage ResponseClass="Success"><m:ResponseCode>NoError</m:ResponseCode><m:ResolutionSet IncludesLastItemInRange="true" TotalItemsInView="1"><t:Resolution><t:Mailbox><t:Name>Thierry TYS. Yen Suin</t:Name><t:EmailAddress>[email protected]</t:EmailAddress><t:RoutingType>SMTP</t:RoutingType><t:MailboxType>Mailbox</t:MailboxType></t:Mailbox><t:Contact><t:DisplayName>Thierry  Yen Suin</t:DisplayName><t:GivenName>Thierry</t:GivenName><t:EmailAddresses><t:Entry Key="EmailAddress1">SMTP:[email protected]</t:Entry></t:EmailAddresses><t:ContactSource>ActiveDirectory</t:ContactSource><t:Surname>Yen Suin</t:Surname></t:Contact></t:Resolution></m:ResolutionSet></m:ResolveNamesResponseMessage></m:ResponseMessages></m:ResolveNamesResponse>|
[statistics] disconnected
Job xSoap_ResolveNames_LogRow ended at 13:43 30/05/2012. [exit code=0]

它应该与创建联系人的方法类似。
希望它有所帮助,因为尽管搜索了很长时间,但我还没有找到很多有关将 TalendExchange Web Services 集成的帖子。

I have been struggling with that too...
You can use tSoap for that purpose.
tWebServiceInput does not work for me with EWS.

tSoap->tLogRow

eg:

tSoap component that resolves a given name is the method ResolveNames()
Value to resolve = Thierry

  1. Set "Need Authentication" with username and password
  2. Set End Point, eg "https://yourserver/EWS/Exchange.asmx"
  3. Set SOAP Action,
    "http://schemas.microsoft.com/exchange/services/2006/messages/ResolveNames"
  4. SOAP Version 1.1
  5. Set SOAP Message:
    ... Enter Soap Method enclosed with ".

Joins tSoap to tLogRow

Run the Job. Voila the result...

Starting job xSoap_ResolveNames_LogRow at 13:43 30/05/2012.

[statistics] connecting to socket on port 3682
[statistics] connected
<Header><t:ServerVersionInfo xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" MajorBuildNumber="685" MajorVersion="8" MinorBuildNumber="24" MinorVersion="0" /></Header>|<m:ResolveNamesResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"><m:ResponseMessages><m:ResolveNamesResponseMessage ResponseClass="Success"><m:ResponseCode>NoError</m:ResponseCode><m:ResolutionSet IncludesLastItemInRange="true" TotalItemsInView="1"><t:Resolution><t:Mailbox><t:Name>Thierry TYS. Yen Suin</t:Name><t:EmailAddress>[email protected]</t:EmailAddress><t:RoutingType>SMTP</t:RoutingType><t:MailboxType>Mailbox</t:MailboxType></t:Mailbox><t:Contact><t:DisplayName>Thierry  Yen Suin</t:DisplayName><t:GivenName>Thierry</t:GivenName><t:EmailAddresses><t:Entry Key="EmailAddress1">SMTP:[email protected]</t:Entry></t:EmailAddresses><t:ContactSource>ActiveDirectory</t:ContactSource><t:Surname>Yen Suin</t:Surname></t:Contact></t:Resolution></m:ResolutionSet></m:ResolveNamesResponseMessage></m:ResponseMessages></m:ResolveNamesResponse>|
[statistics] disconnected
Job xSoap_ResolveNames_LogRow ended at 13:43 30/05/2012. [exit code=0]

It should work similarly with a method that creates a contact.
Hope it helps because I haven't found a lot of post on integrating Talend with Exchange Web Services despite searching for a long time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文