Issue when calling an external web service - CRM 2013

Hello everyone.
This is my scenario:
I'm doing a real time data integration from CRM to another software. I deployed several plugins, mostly in create/update messages, for the entities i want to sync. The developers of the other software gave me the endpoint of the web service and I created the
client using svcutil. I manually created the binding and gave it to the generated client, along with the endpoint. At the first tests I could sync some registries, but I had some mapping errors. I debugged the plugin, corrected the errors, and when I
want to tests again, the plugin is throwing me an exception when calls any method of the web service. Let me explain the issue:
The exception:
I instantiated the client for the web service (passing to it the binding and the endpoint). And when I'm trying to call any method (ex. Add), it throws the exceptions "InvalidOperationException". I started to debug the code and I notice that
just before to call the web service method, the state of the client stills in "Opening". Of course that is generating the exception. 
The complete exception is: "The communication object, System.ServiceModel.ChannelFactory`1[IAxxisWcfServices], cannot be modified while it is in the Opening
state."} System.SystemException {System.InvalidOperationException}
I did a test, outside the CRM environment, on a console app with the same conditions of the web services client (generating with svcutil, manually passing the same binding and endpoint), and the same order of the plugin code, and everything works well; The
state of the client never stills in 'Opening', so I discarded any problem with the web service.
Anyone knows if I'm missing something in the code? or some configuration?
The CRM is 2013 On-premise with last updates.
Thanks in advance.

I tried adding the web reference in a console app and works fine. In the plugins this can't be done, because the plugins are deploy in database.
I tried another basic test using ChannelFactory. Only want to retrieve some entity through the external web services:
IPluginExecutionContext context = localContext.PluginExecutionContext;
IOrganizationService service = localContext.OrganizationService;
ITracingService tracer = localContext.TracingService;
try
BasicHttpBinding binding = new BasicHttpBinding();
binding.Name = "BasicHttpBinding_IAxxisWcfServices";
binding.Security.Mode = BasicHttpSecurityMode.None;
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
EndpointAddress endpoint = new EndpointAddress(@"http://*****.svc");
ChannelFactory<IAxxisWcfServices> factory = new ChannelFactory<IAxxisWcfServices>(binding, endpoint);
IAxxisWcfServices channel = factory.CreateChannel();
var entity = channel.FindByEntities(new CRM.Application.Context.Dtos.Asegurado( { CrmGuid = "7C3E96C6-C3BC-E411-80DF-0A736AE14667" }, null, new CRM.Framework.Session() { User = "***", Password = "***" });
catch (Exception ex)
throw new InvalidPluginExecutionException(ex.Message);
That test threw the following exception on the GenericParameterAttributes of channelType of factory object:
http://s27.postimg.org/4wf3er8up/Error.png

Similar Messages

  • Error when calling an external web service (blank soap action)

    I did a lot of searching on this message and did not find an answer. Most of the issues i found related to XI/PI, which we are not using.
    There is a web service created outside of SAP for which i generated (from the WSDL) a proxy class in my DEV system, client 050, a few years ago. This was subsequently moved to QA and production, and all is working fine.
    Now, i want the same web service to work in client 100. I created the logical port, and the RFC destination, but when i try to call the web service, i get the following error
    Server did not recognize the value of HTTP Header SOAPAction
    Since only the basis group around here can access the logical port definition,and rfc destination, i have no idea where this information should be set up. I should not have to reimport the WSDL, since the proxy was imported from DEV to QA and it is working in QA client 050. There is something i need to set up, specific to client 100, and i am missing it. I looked in SOAMANAGER, and i didnt see anything even set up  there for client 050, so i did set up anything for client 100.
    Any help would be appreciated.

    I tried adding the web reference in a console app and works fine. In the plugins this can't be done, because the plugins are deploy in database.
    I tried another basic test using ChannelFactory. Only want to retrieve some entity through the external web services:
    IPluginExecutionContext context = localContext.PluginExecutionContext;
    IOrganizationService service = localContext.OrganizationService;
    ITracingService tracer = localContext.TracingService;
    try
    BasicHttpBinding binding = new BasicHttpBinding();
    binding.Name = "BasicHttpBinding_IAxxisWcfServices";
    binding.Security.Mode = BasicHttpSecurityMode.None;
    binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
    binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
    EndpointAddress endpoint = new EndpointAddress(@"http://*****.svc");
    ChannelFactory<IAxxisWcfServices> factory = new ChannelFactory<IAxxisWcfServices>(binding, endpoint);
    IAxxisWcfServices channel = factory.CreateChannel();
    var entity = channel.FindByEntities(new CRM.Application.Context.Dtos.Asegurado( { CrmGuid = "7C3E96C6-C3BC-E411-80DF-0A736AE14667" }, null, new CRM.Framework.Session() { User = "***", Password = "***" });
    catch (Exception ex)
    throw new InvalidPluginExecutionException(ex.Message);
    That test threw the following exception on the GenericParameterAttributes of channelType of factory object:
    http://s27.postimg.org/4wf3er8up/Error.png

  • Issue with calling an external web service using web service proxy

    Hi,
    I've created several web services using JDeveloper succesfully in the past, however I'm getting an issue with one that was working ok previously. Have spoken to the developers of the external web service and they say they haven't changed anything. Also if I test the external web service through soapUI for example it seems fine so it would seem that the issue is with the autogenerated code created by JDeveloper.
    Basically I get the following exception as it sends the request to the external service:
    java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: Bad Authentication header format: 'Basic realm="Integration Server" encoding="UTF-8"'
    Expected "," at position 33
    The user name/password appear correct.
    JDev version 10.1.3.42.70
    Any ideas?
    Many Thanks
    Gary
    Edited by: user10916721 on 08-May-2012 09:54

    Found the answer. Basically I had one proxy web service working and one not both linking to a middle tier written in web methods. THe issue actually ended up being with the web methods code in that the one web service (that was not working) was put together using a backwards compatability mode. Once this was switched back then started working again in JDev.

  • MDB receive a message and then call an external web service

    Title basically says it all, but I'm looking for suggestions for the best way to have a message driven bean receive a message then process it and call an external web service with the results. This seems like a straightforward problem to solve but I keep getting stuck in the deployment to weblogic when I do it my way so I'm looking for new ideas.
    Basically, I have an MDB that gets deployed to WL 10.3 and receives messages just fine. Also, I have a standalone class, that runs from the command line or IDE, that can send messages to the external web service. But when I try to bring the code from the standalone class into the MDB and get it deployed, I can't get all the dependencies to resolve.
    So, is there a proper (quick and easy) way to do this? Which wizard should I be using to get Workshop to create web service client so that I can use it in my MDB project? Any suggestions to tutorials?
    Thanks,
    Matt

    Yes BusinessService is the reference point used in OSB to call a backend provider service. So we need to configure the business service based on the external service (they can be http based, jms based, etc ..)
    In your case I am assuming it is a http based web service. So below are the steps to be done:
    1. Create a business service (if you dont have a wsdl then create it as "Any soap type" else upload the wsdl as a wsdl resource and then use it) and configure the url of the business service with the URL of the external service you want to invoke.
    2. From the proxy flow, have a service callout action and select the business service. Then configure the appropriate body and header variables.
    3. Then test the proxy service from the test console, you should be able to see the response from the external service as a part of the service callout response.
    Let me know if you still have issues.
    Thanks,
    Patrick

  • Crystal Reports 2008 fails when called from e Web Service under 64bit OS

    I have discovered that Crystal Reports 2008 doesn't work when called from a Web Service running under 64bit Windows platforms (in my case Windows 2003 Server and Windows XP 64bit); practically no object is instantiated. I've tried several solutions without success.
    Before creating a wrapper component to use under COM+, is there anybody who has a better and cheaper solution than creating another component to wrap CR 2008 ?

    Hi Sergio,
    Before I mark this post as assumed answered I would just like to say and re-iterate that at this time there is no one answer and we fully understand your concerns. As you know in CR 6.0 it came in 16 and 32 bit versions because at the time 32 bit was relatively new but 16 bit was the norm. This is also true for 32 to 64 bit, 32 is the norm and 64 bit is relatively new. We know and are well aware 64 bit is the future and we are working as quickly as we can to move in that direction. Because of the complexity of the Product it's not simply a matter of re-compiling all of our dll's in 64 bit format. The core of our data connectivity with our database drivers which are dependant on third party clients must also need to support 64 bit modes. This as well as Printer drivers also need to be 64 compatable, there are a multitude of dependencies that we rely on that must add 64 bit support. As a programmer you are well aware of the issues around Thunking back and forth between 32 to 64 bits, it can cause delays and potentially loss of data which is a whole other issue. Not to mention also that we would have to ship both versions potentially doubling the size of the distribution packages or doubling the size of the dll's to have the ability to work in both modes. Relatively speaking of course, it would not be double the size but the variables would need to be able to allocate 32 or 64 memory blocks.
    The other option is to produce 2 separate versions, this alone is a massive project. Any issue would need to be fixed in separate code streams.
    So I'm sure you can see it's not simply a matter of saying yes we support 64 bit. It's a massive project that is going to take time to do and we have to wait for the third party drivers to commit also.
    Visual Studio .NET 2005 and 2008 is the only option if you want true 64 bit but you will be limited on what DB's you can support and export formats you can export to. They are the only drivers we did convert to 64 bit.
    Thank you for your understanding
    Don

  • Calling an External Web-Service Inside an Exception Flow

    Hi all,
    Is it a good practice in OBPM to call an External Web-Service when the process enters inside a System Exception Flow?

    Your challenge will be when you throw an exception inside the Exception handler chain. You can't catch an exception (other than in a try/catch block in the logic of an Automatic activity) inside an Exception handler chain.
    Sorry - not a good practice.
    Dan

  • How to call an external web service from OIM?

    Hi,
    I have a question on how to call an external web service from OIM within e.g. creating user process? How should it be done; through adapter and task in the process?
    Any recomendations?
    Thanks in advance!

    it is not clear to me if you are having problems with calling java code from OIM or if the problem is the web service API.
    Lets do some divide and conquer:
    Can you create a simple java class that just writes a couple of lines to the log? Please attach this code to the OIM task and make sure it runs.
    Once this works we can start looking at the web service call.
    Best regards
    /Martin

  • Help needed with process to call an external web service from within ABAP

    Hello,
    I have an understanding of how I can provision web service from within SAP so that it can be consumed by external apps.
    Now, I am in need to know the, how I can call an external non-sap web service (let's say a java application) or even a public domain web service for that matter:
    Is there any lay man's guide out there? which will list following step:
    A sample ABAP program calling an external web service
    List of all the configurations needed within SAP to make this happen (calling an external web service).
    Any help will be greatly appreciated.

    Hi Matesh,
    Please use the following command in Google : site:sdn.sap.com abap consuming web service
    There is many samples of your needs on SDN.
    Like this one :
    http://wiki.sdn.sap.com/wiki/display/Snippets/WebServiceconsumerusingABAP-PROXY
    Regards, Gilles.

  • Calling an external web service from SharePoint 2010

    Hi Friends,
    Idea is to call an external web service from SharePoint 2010 list.
    Can we do this using visual studio 2010, how.
    another pointers, please advise.

    Hi,
    You can create Windows Communication Foundation (WCF) web services that you can consume as external content types from Microsoft Business Connectivity Services (BCS).
    For more information, you can refer to:
    http://msdn.microsoft.com/en-us/library/office/gg318615(v=office.14).aspx
    http://www.c-sharpcorner.com/UploadFile/Roji.Joy/connecting-to-a-web-service-using-business-connectivity-serv/
    http://blogs.msmvps.com/windsor/2011/11/04/walkthrough-creating-a-custom-asp-net-asmx-web-service-in-sharepoint-2010/
    Best Regards,
    Linda Li
    Linda Li
    TechNet Community Support

  • Sun BPEL engine sets wrong Content-Type on calling an external web service

    I have a WSDL for an external web service (which as it happens is running in Websphere locally) and have implemented it as a
    partnerlink on a BPEL diagram in an SOA composite project. The binding style is Document and if you use SOAPUI to test it it
    works fine. Tracing on the web service's server shows the SOAP request coming in. It has a content-type of text/xml, as expected. If I do a JUnit test from NetBeans based on this WSDL alone it also works - same result. BUT if I do
    a full test and call my BPEL process the invocation of this service from BPEL fails.
    On the Test result you see
    BPCOR-6135:A fault was not handled in the process scope; Fault Name is http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling}systemFault;
    (This happens because I did not handle the fault in the BPEL.)
    On the trace I see it now has Content-type of application/xop+xml. Why would the Sun BPEL engine change this? I just
    accepted the usual defaults when I created the PartnerLink and the Invoke. Anyway, the format of the request doesn't match what the WS server expects, so it fails.
    As far as I'm aware I'm just using SOAP1.1. This is NetBeans 6.5 with Glassfish 2.1. I tried with NetBeans 6.7 and it got worse, not better. I would certainly appreciate any advice?
    Thanks

    Perhaps when the BPEL file based process calls the WSDL file to execute,their message communication is not correct.
    the head part in the WSDL file should be manually set to "text/xml", or the IDE or Server will use the default value;
    for example as follow:
    SOAPUI tool would use the default value "text/xml" to request.(depends the tool support).
    NetBeans tool would use the default value "text/xml" to request.
    when you do a full test and you do not set the head "context-type" value ,the WSDL file use the server's default head
    value"application/xop-xml" so that return the contents under the control of the server's default value.
    I hope these will be useful for you.

  • BPEL engine sets wrong Content-Type on calling an external web service

    I have a WSDL for an external web service (which as it happens is running in Websphere locally) and have implemented it as a
    partnerlink on a BPEL diagram in an SOA composite project.
    The binding style is Document and if you use SOAPUI to test it it
    works fine. Tracing on the web service's server shows the SOAP request
    coming in. It has a content-type of text/xml, as expected. If I do a
    JUnit test from NetBeans based on this WSDL alone it also works - same result. BUT if I do
    a full test and call my BPEL process the invocation of this service
    from BPEL fails.
    On the Test result you see
    BPCOR-6135:A fault was not handled in the process scope; Fault Name is http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling}systemFault;
    (This happens because I did not handle the fault in the BPEL.)
    On the trace I see it now has Content-type of
    application/xop+xml. Why would the Sun BPEL engine change this? I just
    accepted the usual defaults when I created the PartnerLink and the
    Invoke. Anyway, the format of the request doesn't match what the WS server expects, so it fails.
    As far as I'm aware I'm just using SOAP1.1. This is NetBeans 6.5 with
    Glassfish 2.1. I tried with NetBeans 6.7 and it got worse, not better.
    I would certainly appreciate any advice?
    Thanks

    Perhaps when the BPEL file based process calls the WSDL file to execute,their message communication is not correct.
    the head part in the WSDL file should be manually set to "text/xml", or the IDE or Server will use the default value;
    for example as follow:
    SOAPUI tool would use the default value "text/xml" to request.(depends the tool support).
    NetBeans tool would use the default value "text/xml" to request.
    when you do a full test and you do not set the head "context-type" value ,the WSDL file use the server's default head
    value"application/xop-xml" so that return the contents under the control of the server's default value.
    I hope these will be useful for you.

  • Is it possible to call an external web service using ABAP?

    Hi~~
    I wonder that is possible to use an external web service in SAPGUI using ABAP without PI ( Process Integraion ).
    The external web service means the service that is developed by web-language like ASP.NET.
    Thank you.

    hi,
    i'm trying to study on how to use the oracle bi publisher using another client application aside from oracle. the client application is custom and uses a .Net framework. unfortunately, i am not familiar with how .Net sends requests to oracle bi publisher so i was thinking that may be i can just create oracle pl/sql stored procedures that can send this requests over to bi publisher.
    p.s. when you said concurrent manager, i'm not sure if you are referring to oracle apps concurrent manager but if you are, unfortunately i won't be using oracle apps with bi publisher.
    thanks
    allen

  • Calling an external web service from a session bean

    We're integrating our Weblogic EJB application with a third party JBoss-based product that exposes a web service API. I thought that Weblogic should have all of the libraries available that I would need in order to make this connection. However, when I bundle the web service client jar and attempt to call the web service from within Weblogic, I get:
    java.lang.NoClassDefFoundError: com/sun/xml/rpc/client/BasicService
    If I bundle jaxrpc-api, jaxrpc-impl, and jaxrpc-spi in the EAR, I instead get:
    java.lang.IncompatibleClassChangeError at com.sun.xml.rpc.streaming.XmlTreeWriter.addNewNode(XmlTreeWriter.java:102)
    ...which isn't any better, and makes me think there's a competing jaxrpc somewhere.
    What am I doing wrong?

    Hello,
    Can you indicate the classpath that you use to run your client, version of weblogic and the version of jaxrpc api that you are using.
    As a quick experiment adding the jaxrpc jar files to your classpath one at a time.
    This [url http://www.javaworld.com/javaforums/showflat.php?Cat=&Board=Enterprisejava&Number=3801&page=12&view=collapsed&sb=9&o=&fpart=1]chap seemed to have a similar problem to you and solved it by adding the jaxprc-spi jar file to his class path. It may be that the jaxrpc-impl is causing you greif.
    Also see this thread:
    http://forums.bea.com/bea/message.jspa?messageID=200612003&tstart=0
    Hussein Badakhchani
    www.orbism.com

  • Resetting User Password by calling an external Web Service

    Hi,<br>
    <p>
    We have an external Web Service, which handles Active Directory related activities.  We would like to use this service to help users reset their passwords.  We created a Portal Service from the external Web Service's WSDL.  We have exposed the methods we require from this Web Service and are able to call these methods by creating Abstract Portal Components.  We are currently testing the exposed methods via the Portal Component Starter and Viewer.
    </p><p>
    The current logon.par has a ResetPasswordPage.  The corresponding form within the JSP is submitting data to the following string:
    <br>
    <i>inPortal?proxy.getAlias("RPWFS"):logonBean.getLogonURL(proxy, null)</i>
    <br>
    <p>
    From what I can understand, the proper action URL will be returned by the method getAlias("RPWFS").  However, I am unable to find the definition of "RPWFS" in the PAR file. 
    </p>
    <b>Questions:</b><br>
    <li>
    What does "RPWFS" stand for?  Where is this defined?
    </li><li>
    Would it be possible to modify the ResetPassword JSP file in the logon.par so that upon data submission, the Portal Service is called? 
    </li><li>
    Where can I find documentation on JSPDynPage and DynPage (and how to create and edit the above-mentioned items)?
    </li><li>
    Is there any documentation on the functions used in the logon.par?  For example, what is IAccessToLogic?  Where is this defined?  What does it do?  Is there a library where we can search for information on this kind of stuff (like MSDN for Microsoft and API docs at java.sun.com)?
    </li>
    <br>Thank You.

    <i>Is there any documentation on the functions used in the logon.par? For example, what is IAccessToLogic? Where is this defined? What does it do? Is there a library where we can search for information on this kind of stuff (like MSDN for Microsoft and API docs at java.sun.com)?</i>
    <b>Possible Answer:</b>
    https://help.sap.com/javadocs/NW04S/SPS09/ep/index.html<br>
    While some packages are listed on this page, many other packages are missing (eg. com.sap.security.core.logonadmin.IAccessToLogic)

  • Calling an external web service fron jdev 11g TP4

    I am trying to build a BPEL process that invokes an external web service. So, I add a web service adapter on my project and when the wizared comes up I put the following as the web service URL:
    http://www.webservicex.net/globalweather.asmx?WSDL
    This is just a webservice for weather. as soon as I copy it on the corresponding field I get the following error message
    "Error while reading wsdl file http://www.webservicex.net/globalweather.asmx?WSDL. Exception: Failed to read wsdl file at: "http://www.webservicex.net/globalweather.asmx?WSDL", caused by java.net.connectException. : Connection timed out: connect ".
    When I try to connect to the webservice through internet explorer I get the correct results.
    Can anyone help me on how to do that?
    Thank you.

    Are you working behind a proxy? Try setting the same proxy setting you have in IE inside JDeveloper under tools->preferences->Web browser Proxy.

Maybe you are looking for