1

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.

4

2 に答える 2

1

私はTalendで働いており、少しでもお手伝いさせていただきますが、私自身はExchangeWSDLに精通していません。Microsoftのような確立されたベンダーのSOAPインターフェイスはWS-IBasicProfileと互換性があり、通常のWSと同じように直接簡単に呼び出すことができると思います。次のことを試していただけませんか。

  1. MS WSDLから欠落している特定の要素は何ですか、それとも非標準の機能を使用しようとしていますか?CXFは完全にJAX-WSに準拠しており、WS-I BPに準拠していることが認定されているため、何か奇妙なことが起こっていると想定する必要があります。
  2. Talendから呼び出そうとしているExchangeからWSDLをポストします。
  3. CXFを使用してそのWSDLのプロキシクライアントを作成します。
  4. 試してみて、エラーメッセージを送信してください。
  5. CXFを使用してそのwsdlに基づいてモックサービスプロバイダーを生成し、CXFモックを実行して、CXFwsdlクライアントでそれを試してください。これにより、クライアントとwsdlに問題がないという確信がさらに高まります。
  6. また、ExchangeWSに対してSOAPUIまたは同様のツールを使用して簡単なテストケースを生成してみることもできます。

ps:CXFはApacheベースのオープンソースです。使いやすく、ASFスイートを介してTalendと緊密に統合されています。ただし、診断目的で単独で使用することもできます。

エド

于 2011-01-07T20:56:58.030 に答える
1

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>thierry.suin@sc-mauritius.com</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:thierry.suin@sc-mauritius.com</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.

于 2012-05-30T10:22:04.483 に答える