One Star

Talend Data Integration + Dynamics 2015

Hello!
I have a problem connecting Talend Data Integration (Open Studio version) together with Microsoft Dynamics 2015, and I would like to ask the Talend Pros for help...
My company is running On-Premise version of CRM 2015, installed on multiple servers. What I'm trying to do right now is to create a Talend job to export data from said CRM, using tMicrosoftCRMInput component. Unfortunately, after filling the settings required for tMicrosoftCRMInput and starting the job, I'm receiving following error:

INFO: Can not initialize the default wsdl from classpath:wsdl/OrganizationService.wsdl
: org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl - No assertion builder for type {}AuthenticationPolicy registered.
: org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl - No assertion builder for type {}NegotiateAuthentication registered.
: org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl - No assertion builder for type {}RsaToken registered.
: org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for {}OrganizationService#{}RetrieveMultiple has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: ID3242: The security token could not be authenticated or authorized.
    at org.apache.cxf.binding.soap.interceptor.Soap12FaultInInterceptor.unmarshalFault(Soap12FaultInInterceptor.java:155)
    at org.apache.cxf.binding.soap.interceptor.Soap12FaultInInterceptor.handleMessage(Soap12FaultInInterceptor.java:66)
    at org.apache.cxf.binding.soap.interceptor.Soap12FaultInInterceptor.handleMessage(Soap12FaultInInterceptor.java:52)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
    at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:112)
    at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
Exception in component tMicrosoftCrmInput_1
javax.xml.ws.soap.SOAPFaultException: ID3242: The security token could not be authenticated or authorized.
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:161)
    at com.sun.proxy.$Proxy51.retrieveMultiple(Unknown Source)
    at local_project.test_0_1.test.tMicrosoftCrmInput_1Process(test.java:3575)
    at local_project.test_0_1.test.runJobInTOS(test.java:5422)
    at local_project.test_0_1.test.main(test.java:5279)
Caused by: org.apache.cxf.binding.soap.SoapFault: ID3242: The security token could not be authenticated or authorized.
    at org.apache.cxf.binding.soap.interceptor.Soap12FaultInInterceptor.unmarshalFault(Soap12FaultInInterceptor.java:155)
    at org.apache.cxf.binding.soap.interceptor.Soap12FaultInInterceptor.handleMessage(Soap12FaultInInterceptor.java:66)
    at org.apache.cxf.binding.soap.interceptor.Soap12FaultInInterceptor.handleMessage(Soap12FaultInInterceptor.java:52)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
    at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
    at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:798)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1669)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1550)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1347)
    at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
    at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
    at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
    at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:112)
    at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
    at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
    at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:798)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1669)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1550)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1347)
    at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
    at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
    at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277)
    at org.apache.cxf.ws.security.trust.AbstractSTSClient.issue(AbstractSTSClient.java:850)
    at org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:61)
    at org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:55)
    at org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:51)
    at org.apache.cxf.ws.security.trust.STSTokenRetriever.getTokenFromSTS(STSTokenRetriever.java:420)
    at org.apache.cxf.ws.security.trust.STSTokenRetriever.issueToken(STSTokenRetriever.java:157)
    at org.apache.cxf.ws.security.trust.STSTokenRetriever.getToken(STSTokenRetriever.java:58)
    at org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.handleMessage(IssuedTokenInterceptorProvider.java:133)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277)
    at org.apache.cxf.ws.security.trust.AbstractSTSClient.issue(AbstractSTSClient.java:850)
    at org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:61)
    at org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:55)
    at org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:51)
    at org.apache.cxf.ws.security.trust.STSTokenRetriever.getTokenFromSTS(STSTokenRetriever.java:420)
    at org.apache.cxf.ws.security.trust.STSTokenRetriever.issueToken(STSTokenRetriever.java:157)
    at org.apache.cxf.ws.security.trust.STSTokenRetriever.getToken(STSTokenRetriever.java:58)
    at org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.handleMessage(IssuedTokenInterceptorProvider.java:133)
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277)
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
    at com.sun.proxy.$Proxy51.retrieveMultiple(Unknown Source)
    at local_project.test_0_1.test.tMicrosoftCrmInput_1Process(test.java:3575)
    at local_project.test_0_1.test.runJobInTOS(test.java:5422)
    at local_project.test_0_1.test.main(test.java:5279)
disconnected
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277)
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
    ... 4 more

I'm quite certain I filled good values in all fields. Both Organization Wsdl URL and Security Service URL are correct and working, username is provided with working user with all required priviliges and good password, version is 2015 and On-Premise. Yet, the job fails with the error above. Just to be sure, I checked this with on my own fresh Dev serwer. This time the error was:

INFO: Can not initialize the default wsdl from classpath:wsdl/OrganizationService.wsdl
: org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl - No assertion builder for type {}AuthenticationPolicy registered.
: org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for {}OrganizationService#{}RetrieveMultiple has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: You must initialize the xml-security library correctly before you use it. Call the static method "org.apache.xml.security.Init.init();" to do that before you use any functionality from that library.
    at org.apache.cxf.ws.security.policy.interceptors.SpnegoContextTokenOutInterceptor.issueToken(SpnegoContextTokenOutInterceptor.java:119)
    at org.apache.cxf.ws.security.policy.interceptors.SpnegoContextTokenOutInterceptor.handleMessage(SpnegoContextTokenOutInterceptor.java:75)
    at org.apache.cxf.ws.security.policy.interceptors.SpnegoContextTokenOutInterceptor.handleMessage(SpnegoContextTokenOutInterceptor.java:47)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277)
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
    at com.sun.proxy.$Proxy51.retrieveMultiple(Unknown Source)
    at local_project.test_0_1.test.tMicrosoftCrmInput_1Process(test.java:4041)
    at local_project.test_0_1.test.runJobInTOS(test.java:5888)
    at local_project.test_0_1.test.main(test.java:5745)
Caused by: org.apache.wss4j.common.ext.WSSecurityException: You must initialize the xml-security library correctly before you use it. Call the static method "org.apache.xml.security.Init.init();" to do that before you use any functionality from that library.
Original Exception was javax.security.auth.login.LoginException: Invalid null input: name
    at org.apache.wss4j.common.spnego.SpnegoTokenContext.retrieveServiceTicket(SpnegoTokenContext.java:127)
    at org.apache.wss4j.common.spnego.SpnegoTokenContext.retrieveServiceTicket(SpnegoTokenContext.java:90)
    at org.apache.wss4j.common.spnego.SpnegoTokenContext.retrieveServiceTicket(SpnegoTokenContext.java:71)
    at org.apache.cxf.ws.security.policy.interceptors.SpnegoContextTokenOutInterceptor.issueToken(SpnegoContextTokenOutInterceptor.java:117)
    ... 13 more
Caused by: javax.security.auth.login.LoginException: Invalid null input: name
    at javax.security.auth.login.LoginContext.init(Unknown Source)
    at javax.security.auth.login.LoginContext.<init>(Unknown Source)
    at org.apache.wss4j.common.spnego.SpnegoTokenContext.retrieveServiceTicket(SpnegoTokenContext.java:118)
    ... 16 more
Exception in component tMicrosoftCrmInput_1
javax.xml.ws.soap.SOAPFaultException: You must initialize the xml-security library correctly before you use it. Call the static method "org.apache.xml.security.Init.init();" to do that before you use any functionality from that library.
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:161)
    at com.sun.proxy.$Proxy51.retrieveMultiple(Unknown Source)
    at local_project.test_0_1.test.tMicrosoftCrmInput_1Process(test.java:4041)
    at local_project.test_0_1.test.runJobInTOS(test.java:5888)
    at local_project.test_0_1.test.main(test.java:5745)
Caused by: org.apache.wss4j.common.ext.WSSecurityException: You must initialize the xml-security library correctly before you use it. Call the static method "org.apache.xml.security.Init.init();" to do that before you use any functionality from that library.
Original Exception was javax.security.auth.login.LoginException: Invalid null input: name
    at org.apache.wss4j.common.spnego.SpnegoTokenContext.retrieveServiceTicket(SpnegoTokenContext.java:127)
disconnected
    at org.apache.wss4j.common.spnego.SpnegoTokenContext.retrieveServiceTicket(SpnegoTokenContext.java:90)
    at org.apache.wss4j.common.spnego.SpnegoTokenContext.retrieveServiceTicket(SpnegoTokenContext.java:71)
    at org.apache.cxf.ws.security.policy.interceptors.SpnegoContextTokenOutInterceptor.issueToken(SpnegoContextTokenOutInterceptor.java:117)
    at org.apache.cxf.ws.security.policy.interceptors.SpnegoContextTokenOutInterceptor.handleMessage(SpnegoContextTokenOutInterceptor.java:75)
    at org.apache.cxf.ws.security.policy.interceptors.SpnegoContextTokenOutInterceptor.handleMessage(SpnegoContextTokenOutInterceptor.java:47)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277)
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
    ... 4 more
Caused by: javax.security.auth.login.LoginException: Invalid null input: name
    at javax.security.auth.login.LoginContext.init(Unknown Source)
    at javax.security.auth.login.LoginContext.<init>(Unknown Source)
    at org.apache.wss4j.common.spnego.SpnegoTokenContext.retrieveServiceTicket(SpnegoTokenContext.java:118)
    ... 16 more

I'm a bit clueless, I tried many configurations and all of them failed. If anyone has any experience with connecting Talend Data Integration and Dynamics CRM 2015, I would be really grateful for help!
7 REPLIES
Moderator

Re: Talend Data Integration + Dynamics 2015

Hi,
On which build version you got this issue?
Could you please post your job setting screenshot into forum which will be helpful for us to address your issue?
Best regards
Sabrina
--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
One Star

Re: Talend Data Integration + Dynamics 2015

Certainly, here is my job settings screenshot.
 

Trust certificate is empty, we do not use it from what I know. I'm using Talend 6.1.1 , build version is on the screenshot.
Thank you very much!
One Star fbt
One Star

Re: Talend Data Integration + Dynamics 2015

Hello,
I have exactly the same issue with TOS 6.2.1 built 20160704_1411, does any one has found a solution ?
One Star

Re: Talend Data Integration + Dynamics 2015

Sorry to say that, but no... We gave up and found another way to connect and import data to Dynamics.
One Star fbt
One Star

Re: Talend Data Integration + Dynamics 2015

Witch way did you use, if you can tell me ? I saw an open jira on this issue , but it's on hold for a while...
To be honnest, it's quite a shame this component doesn't work. I used to work with Talend for a while in my previous job, and as I just changed and we're looking for an etl, this failing component isn't a good advertising at all.
Having integrated components for business applications is a great added value, if they don't work it's worse than not having them...
One Star

Re: Talend Data Integration + Dynamics 2015

You are right, we were rather dissapointed about this product. One could say that this is free software with many other components (which are probably working) and that Dynamics is not the easiest to work with using 3rd party tools, but still it is dissapointing...
Anyway, we dropped Talend and used KingswaySoft Microsoft Dynamics CRM Integration Software plugin for SSIS. The developer license is free, but if you want to use it on production enviroment you have to pay for the license. You can read about it on their website.
There is also another way. Both Talend and KingswaySoft work using package transfer of data, so they have to be fired up by some kind of scheduler (be it SQL job, system scheduler or Talend internal scheduler) to import/export data. If you want to have instant connection and data transfer, you can connect directly to the Dynamics CRM webservice. This requires some coding skills and knowledge about Dynamics CRM webservices, but it is doable. We are preparing such solution right now and it works very good. You can find all necessary information on the MSDN and/or Technet.
Hope this helps. Sorry, but I cannot help You more with Talend. I can only suggest looking at KingswaySoft, I know this one works fine.
Cheers!
One Star fbt
One Star

Re: Talend Data Integration + Dynamics 2015

Thanks for your answers, I'll have a look to KingswaySoft. Handling webservices from Talend isn't a problem for me, but I'm gonna have to find informations on Microsoft CRM side... Once again, what a shame theses Talend components doesn't work as they should...
I was doing a proof of concept with TOS, but we would have bought TIS for DI if every thing had been all right, but it's a big fail...