+ Start a Discussion
Rusty12Rusty12 

WSDL2Apex element not defined; can't capture soap using System Log/ExecuteAnonymous

I'm getting the following error making a callout with a wsdl2apex defined class:

 

20090304221131.470:Class.ClickDelegate.updateOrgs2: line 211, column 48: returning LIST:ClickObject.WSResponse from method public LIST:ClickObject.WSResponse upsertCompany(LIST:ClickObject.WSOrganization) in 0 ms 20090304221131.470:Class.ClickServices.ClickWebService.upsertCompany: line 24, column 13: Created Web Service callout to endpoint: https://vmwareuat.clickcommerce.com/services/ClickWebService 20090304221131.470:Class.ClickServices.ClickWebService.upsertCompany: line 24, column 13: Sending callout request 20090304221131.470:Class.ClickServices.ClickWebService.upsertCompany: line 24, column 13: Reading callout response 20090304221131.470:Class.ClickDelegate.updateOrgs2: line 213, column 13: ERROR: System.CalloutException: Web service callout failed: Unable to parse callout response. Apex type not found for element http://ws.vmware.integration.channelwave.com=errorMessage

 

 It won't capture the SOAP messages even though I have System Log Log Category set to 'callout' and level set to 'Info'. 

 

I believe the SOAP response I'm receiving looks like this: 

 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <upsertCompanyResponse xmlns="http://ws.vmware.integration.channelwave.com"> <upsertCompanyReturn> <objectId>1001864</objectId> <errorMessage>In dbUtil.getFieldLong: SQLException caught-> SQLState: S1093SQLMessage: The column name geog_area_id is not valid.</errorMessage> <recordSuccess>false</recordSuccess> </upsertCompanyReturn> </upsertCompanyResponse> </soapenv:Body> </soapenv:Envelope>

 

 wsdl2apex produced this class called WSResponse...

 

public class ClickObject {
public class WSResponse {
public String objectId;
public String errorMessage;
public Boolean recordSuccess;
private String[] objectId_type_info = new String[]{'objectId','http://www.w3.org/2001/XMLSchema','string','1','1','true'};
private String[] errorMessage_type_info = new String[]{'errorMessage','http://www.w3.org/2001/XMLSchema','string','1','1','true'};
private String[] recordSuccess_type_info = new String[]{'recordSuccess','http://www.w3.org/2001/XMLSchema','boolean','1','1','false'};
private String[] apex_schema_type_info = new String[]{'urn:com.channelwave.integration.vmware.ws.object','true','false'};
private String[] field_order_type_info = new String[]{'objectId','errorMessage','recordSuccess'};

}

 

...

}

 

 

 

 

 

Best Answer chosen by Admin (Salesforce Developers) 
Rusty12Rusty12

this was caused by some sort of a namespace issue.

 

i don't know what the specific cause of the problem was, but luckily the 3rd party web service developers re-worked their web service / wsdl to put all the objects into one namespace and then this issue went away.

 

 

All Answers

Rusty12Rusty12

this was caused by some sort of a namespace issue.

 

i don't know what the specific cause of the problem was, but luckily the 3rd party web service developers re-worked their web service / wsdl to put all the objects into one namespace and then this issue went away.

 

 

This was selected as the best answer
symantecAPsymantecAP

I am calling Enterprise WSDL from TIBCO . I want to know where is the SOAP request for login captured in salesforce