function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
somessomes 

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();
		}
	}
}