Found the answer to my question: For those having the same problem.
ANSWER: When working with HTTP servlets i needed to have the jars within the WEB-INF/lib directory. Else i could just keep them under the java build path (libraries). Thus in eclispe, right click on lib, then Add Google API's and the select BigQuery.
I am testing out google app engine with big query.
I am able to run big query fine in eclipse when I run it as an app, however when i run it as an HttpServlet i keep getting the following error!
java.lang.NoClassDefFoundError: com/google/api/client/json/JsonFactory
Below is the exact code I am using.
package com.hw3.test;
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.bigquery.Bigquery;
import com.google.api.services.bigquery.BigqueryScopes;
import com.google.api.services.bigquery.model.GetQueryResultsResponse;
import com.google.api.services.bigquery.model.QueryRequest;
import com.google.api.services.bigquery.model.QueryResponse;
import com.google.api.services.bigquery.model.TableCell;
import com.google.api.services.bigquery.model.TableRow;
import java.io.IOException;
import javax.servlet.http.*;
import java.util.List;
import java.util.Scanner;
@SuppressWarnings("serial")
public class HelloWord3Servlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        Bigquery bigquery = createAuthorizedClient();  //If i comment this out i will get the text below, else i get the error from the title.
        resp.setContentType("text/plain");
        resp.getWriter().println("\nQuery Results:\n------------\n");
    }
    private static List<TableRow> executeQuery(String querySql, Bigquery bigquery, String projectId)
            throws IOException {
        QueryResponse query = bigquery.jobs().query(projectId, new QueryRequest().setQuery(querySql)).execute();
        // Execute it
        GetQueryResultsResponse queryResult = bigquery.jobs()
                .getQueryResults(query.getJobReference().getProjectId(), query.getJobReference().getJobId()).execute();
        return queryResult.getRows();
    }
    public static Bigquery createAuthorizedClient() throws IOException {
        // Create the credential
        HttpTransport transport = new NetHttpTransport();
        JsonFactory jsonFactory = new JacksonFactory();
        GoogleCredential credential = GoogleCredential.getApplicationDefault(transport, jsonFactory);
        // Depending on the environment that provides the default credentials
        // (e.g. Compute Engine, App
        // Engine), the credentials may require us to specify the scopes we need
        // explicitly.
        // Check for this case, and inject the Bigquery scope if required.
        if (credential.createScopedRequired()) {
            credential = credential.createScoped(BigqueryScopes.all());
        }
        return new Bigquery.Builder(transport, jsonFactory, credential).setApplicationName("Bigquery Samples").build();
    }
    public static void main(String[] args) throws IOException {
        Scanner sc;
        if (args.length == 0) {
            // Prompt the user to enter the id of the project to run the queries
            // under
            System.out.print("Enter the project ID: ");
            sc = new Scanner(System.in);
        } else {
            sc = new Scanner(args[0]);
        }
        String projectId = sc.nextLine();
        // Create a new Bigquery client authorized via Application Default
        // Credentials.
        Bigquery bigquery = createAuthorizedClient();
        List<TableRow> rows = executeQuery(
                "SELECT TOP(corpus, 10) as title, COUNT(*) as unique_words " + "FROM [publicdata:samples.shakespeare]",
                bigquery, projectId);
         printResults(rows);
    }
    private static void printResults(List<TableRow> rows) {
        System.out.print("\nQuery Results:\n------------\n");
        for (TableRow row : rows) {
            for (TableCell field : row.getF()) {
                System.out.printf("%-50s", field.getV());
            }
            System.out.println();
        }
    }
}
I got this code directly from the google website although i did modify it slightly so that i can test out app engine. However it will not work when using app engine.
Any help is greatly appreciated!
 
    