You need to sign in to do that
Don't have an account?
somes
No operation available for request {http://soap.sforce.com/2006/04/metadata}retrieve
Hi,
I am new to SFDC, I am trying with Meta Data API and i tried a example which is given as QuickStart, but i am getting the below error. Can someone help me out to solve this Exception.
ERROR: No operation available for request {http://soap.sforce.com/2006/04/metadata}retrieve
Code:
package com.example.samples; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.nio.channels.Channels; import java.nio.channels.FileChannel; import java.nio.channels.ReadableByteChannel; import com.sforce.soap.enterprise.EnterpriseConnection; import com.sforce.soap.metadata.AsyncRequestState; import com.sforce.soap.metadata.AsyncResult; import com.sforce.soap.metadata.MetadataConnection; import com.sforce.soap.metadata.RetrieveMessage; import com.sforce.soap.metadata.RetrieveRequest; import com.sforce.soap.metadata.RetrieveResult; import com.sforce.ws.ConnectionException; import com.sforce.ws.ConnectorConfig; public class testSample { private EnterpriseConnection connection; private MetadataConnection metadataConnection; static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); private static final String ZIP_FILE = "components.zip"; private static final double API_VERSION = 24.0; private static final long ONE_SECOND = 1000; private static final int MAX_NUM_POLL_REQUESTS = 50; public static void main(String[] args) { testSample sample = new testSample(); sample.run(); } private void run() { if (login()) { retrieveZip(); } } private boolean login() /* throws ServiceException */ { boolean success = false; try { ConnectorConfig config = new ConnectorConfig(); config.setUsername("username"); config.setPassword("password"); config.setAuthEndpoint("https://login.salesforce.com/services/Soap/c/24.0/"); connection = new EnterpriseConnection(config); metadataConnection = new MetadataConnection(config); success = true; } catch(ConnectionException ce) { System.out.println(ce.getMessage()); ce.printStackTrace(); } return success; } private void retrieveZip() { try { RetrieveRequest retrieveRequest = new RetrieveRequest(); retrieveRequest.setApiVersion(API_VERSION); retrieveRequest.setUnpackaged(new com.sforce.soap.metadata.Package()); com.sforce.soap.metadata.PackageTypeMembers m = new com.sforce.soap.metadata.PackageTypeMembers(); m.setMembers(new String [] {"Contact"}); m.setName("Workflow"); retrieveRequest.getUnpackaged().setTypes(new com.sforce.soap.metadata.PackageTypeMembers[] { m }); retrieveRequest.setSinglePackage(true); AsyncResult asyncResult = metadataConnection.retrieve(retrieveRequest); int poll = 0; long waitTimeMilliSecs = ONE_SECOND; while (!asyncResult.isDone()) { Thread.sleep(waitTimeMilliSecs); waitTimeMilliSecs *= 2; if (poll++ > MAX_NUM_POLL_REQUESTS) { throw new Exception("Request timed out. If this is a large set " +"of metadata components, check that the time allowed " +"by MAX_NUM_POLL_REQUESTS is sufficient."); } asyncResult = metadataConnection.checkStatus(new String[] {asyncResult.getId()})[0]; System.out.println("Status is: " + asyncResult.getState()); } if (asyncResult.getState() != AsyncRequestState.Completed) { throw new Exception(asyncResult.getStatusCode() +" msg: " + asyncResult.getMessage()); } RetrieveResult result = metadataConnection.checkRetrieveStatus(asyncResult.getId()); StringBuilder buf = new StringBuilder(); if (result.getMessages() != null) { for (RetrieveMessage rm : result.getMessages()) { buf.append(rm.getFileName() + " - " + rm.getProblem()); } } if (buf.length() > 0) { System.out.println("Retrieve warnings:\n" + buf); } ByteArrayInputStream bais = new ByteArrayInputStream(result.getZipFile()); File resultsFile = new File(ZIP_FILE); FileOutputStream os = new FileOutputStream(resultsFile); try { ReadableByteChannel src=Channels.newChannel(bais); FileChannel dest = os.getChannel(); System.out.println("Results written to " +resultsFile.getAbsolutePath() + "\n"); } finally { os.close(); } } catch (Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); } } }