1

We are facing the below error while making call out, to Trizetto web service(GetGroup_GroupId) after generating classes by WSDL2Apex.

“System.CalloutException: Web service callout failed: Unable to parse callout response. Apex type not found for element AppReturnCode”.

The WSDL was containing data type 'int' for AppReturnCode, so i updated it as 'integer'. But the same error is returned. WSDL location: https://odefacetswsl.trizetto.com/FacetsWebServiceLibrary/FaWsvcInpGetGroup.asmx

Note: The same WSDL works in SOAPui giving the expected response.

Could anybody help to resolve the error?

Thanks, Revathy

  • Can you share the WSDL for the service in question? – Daniel Ballinger Mar 17 '16 at 0:22
  • Thank you Daniel for the response, please find the WSDL location shared. – Revathy Mar 17 '16 at 5:56
0

After analyzing response in SOAPUI, Changing WSDL worked.

basically, replace "GetGroupResponse" by below lines

<s:complexType name="GetGroupResponse">
    <s:complexContent mixed="false">
      <s:extension base="tns:Response">
        <s:sequence> 
          <s:element minOccurs="0" maxOccurs="1" name="AppReturnCode" type="s:integer"/>
          <s:element minOccurs="0" maxOccurs="1" name="RESP_COLL" type="tns:ArrayOfREC_RESP"/>
          <s:element minOccurs="0" maxOccurs="1" name="GRGR_COLL" type="tns:ArrayOfREC_GRGR"/>
        </s:sequence>
      </s:extension>
    </s:complexContent>
  </s:complexType>

Response is returning "AppReturnCode" and "RESP_COLL", However WSDL did not had that entry. It only contains "GRGR_COLL". You can try to regenerate stubs classes on basis of this new WSDL.

| improve this answer | |
0

I tried generating the Apex code through the custom FuseIT SFDC Explorer Wsdl2Apex that we made here at work.

The corresponding GetGroupResponse came out as:

public class GetGroupResponse {
    public Integer AppReturnCode;
    public trizettoComFxiIslFawsvcinpgetgroup.ArrayOfREC_ERR AppErrors;
    public trizettoComFxiIslFawsvcinpgetgroup.ArrayOfREC_RESP RESP_COLL;
    private String[] AppReturnCode_type_info = new String[]{'AppReturnCode','http://trizetto.com/fxi/isl/FaWsvcInpGetGroup','int','1','1','false'};
    private String[] AppErrors_type_info = new String[]{'AppErrors','http://trizetto.com/fxi/isl/FaWsvcInpGetGroup','ArrayOfREC_ERR','0','1','false'};
    private String[] RESP_COLL_type_info = new String[]{'RESP_COLL','http://trizetto.com/fxi/isl/FaWsvcInpGetGroup','ArrayOfREC_RESP','0','1','false'};
    public trizettoComFxiIslFawsvcinpgetgroup.ArrayOfREC_GRGR GRGR_COLL;
    private String[] GRGR_COLL_type_info = new String[]{'GRGR_COLL','http://trizetto.com/fxi/isl/FaWsvcInpGetGroup','ArrayOfREC_GRGR','0','1','false'};
    private String[] apex_schema_type_info = new String[]{'http://trizetto.com/fxi/isl/FaWsvcInpGetGroup','true','false'};
    private String[] field_order_type_info = new String[]{'AppReturnCode','AppErrors','RESP_COLL','GRGR_COLL'};
}

As you indicated, the AppReturnCode is an Integer. Note that in AppReturnCode_type_info it is still an 'int', as this is the SOAP type.

I tried invoking it with this anonymous Apex, but it failed with a Read timed out exception. I suspect I don't have the required authentication details.

trizettoComFxiIslFawsvcinpgetgroup.WebSvcGetGroupSoap service = new trizettoComFxiIslFawsvcinpgetgroup.WebSvcGetGroupSoap();
service.timeout_x = 120000;
trizettoComFxiIslFawsvcinpgetgroup.Config pConfig = new trizettoComFxiIslFawsvcinpgetgroup.Config();
pConfig.Region = 'abihsdevfac520';
pConfig.FacetsIdentity = 'SVCAGENT';
pConfig.CallingSystemName = 'DEFAULT';

String pGRGR_ID = 'SF000001';
trizettoComFxiIslFawsvcinpgetgroup.GetGroupResponse resp = service.GetGroup_GroupId(pConfig, pGRGR_ID);

Example callout:

<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <env:Header />
  <env:Body>
    <GetGroup_GroupId xmlns="http://trizetto.com/fxi/isl/FaWsvcInpGetGroup">
      <pConfig>
        <FacetsIdentity>SVCAGENT</FacetsIdentity>
        <CallingSystemName>DEFAULT</CallingSystemName>
        <Region>abihsdevfac520</Region>
      </pConfig>
      <pGRGR_ID>SF000001</pGRGR_ID>
    </GetGroup_GroupId>
  </env:Body>
</env:Envelope>
| improve this answer | |
  • Thanks Daniel for trying it. It is going to the exception catch block while invoking the service from our page controller class throwing the CalloutException in the debug logs as i have already given. The values in request can be for pGRGR_ID you have to give 'SF000001', Region: abihsdevfac520, FacetsIdentity: SVCAGENT, CallingSystemName: DEFAULT There is no authorization required, since it is working properly in SOAPui without any credentials. – Revathy Mar 17 '16 at 10:55
  • Regarding AppReturnCode_type_info, the 3rd string in the array was auto-generated as null in the stub class. I updated it Int/Integer and tried, but no luck. – Revathy Mar 17 '16 at 11:06
  • @Revathy I get an HTML response from the web service with the message "ERROR: The requested URL could not be retrieved". Can you share your working callout from Soap UI. – Daniel Ballinger Mar 18 '16 at 0:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.