java


Unable to Connect to BigQuery from local App Engine instance in Eclipse


I'm new to Google App Engine and I'm trying to run through some of the tutorials to see how this would work for my organization. We are looking at putting some of our data into BigQuery and converting some of our Web applications to App Engine which would need to access BigQuery data.
I am using the java-docs-samples-master code, specifically bigquery/cloud-client/src/main/java/com/example/bigquery/SimpleApp.java
I can run this from the command line using
mvn exec:java -Dexec.mainClass=com.example.bigquery.SimpleAppMain
I incorporate the code into App Engine, which I'm running in Eclipse and created a wrapper so I could still run it from the command line. It works when running from the command line but I get an error when I run it from App Engine in Eclipse.
Is there something I'm missing to configure my local App Engine to connect to Big Query?
Error:
com.google.cloud.bigquery.BigQueryException: Invalid project ID 'no_app_id'. Project IDs must contain 6-63 lowercase letters, digits, or dashes. IDs must start with a letter and may not end with a dash.
at com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc.translate(HttpBigQueryRpc.java:86)
at com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc.create(HttpBigQueryRpc.java:170)
at com.google.cloud.bigquery.BigQueryImpl$3.call(BigQueryImpl.java:208)
...
Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 400
{ "code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Invalid project ID 'no_app_id'. Project IDs must contain 6-63 lowercase letters, digits, or dashes. IDs must start with a letter and may not end with a dash.",
"reason" : "invalid"
} ],
"message" : "Invalid project ID 'no_app_id'. Project IDs must contain 6-63 lowercase letters, digits, or dashes. IDs must start with a letter and may not end with a dash."
}
Code:
package com.example.bigquery;
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.FieldValue;
import com.google.cloud.bigquery.Job;
import com.google.cloud.bigquery.JobId;
import com.google.cloud.bigquery.JobInfo;
import com.google.cloud.bigquery.QueryJobConfiguration;
import com.google.cloud.bigquery.QueryResponse;
import com.google.cloud.bigquery.QueryResult;
import java.util.List;
import java.util.UUID;
public class SimpleApp {
public void runBQ() throws Exception {
// [START create_client]
BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
// [END create_client]
// [START run_query]
QueryJobConfiguration queryConfig =
QueryJobConfiguration.newBuilder(
"SELECT "
+ "APPROX_TOP_COUNT(corpus, 10) as title, "
+ "COUNT(*) as unique_words "
+ "FROM `publicdata.samples.shakespeare`;")
// Use standard SQL syntax for queries.
// See: https://cloud.google.com/bigquery/sql-reference/
.setUseLegacySql(false)
.build();
// Create a job ID so that we can safely retry.
JobId jobId = JobId.of(UUID.randomUUID().toString());
Job queryJob = bigquery.create(JobInfo.newBuilder(queryConfig).setJobId(jobId).build());
// Wait for the query to complete.
queryJob = queryJob.waitFor();
// Check for errors
if (queryJob == null) {
throw new RuntimeException("Job no longer exists");
} else if (queryJob.getStatus().getError() != null) {
// You can also look at queryJob.getStatus().getExecutionErrors() for all
// errors, not just the latest one.
throw new RuntimeException(queryJob.getStatus().getError().toString());
}
// Get the results.
QueryResponse response = bigquery.getQueryResults(jobId);
// [END run_query]
// [START print_results]
QueryResult result = response.getResult();
// Print all pages of the results.
while (result != null) {
for (List<FieldValue> row : result.iterateAll()) {
List<FieldValue> titles = row.get(0).getRepeatedValue();
System.out.println("titles:");
for (FieldValue titleValue : titles) {
List<FieldValue> titleRecord = titleValue.getRecordValue();
String title = titleRecord.get(0).getStringValue();
long uniqueWords = titleRecord.get(1).getLongValue();
System.out.printf("\t%s: %d\n", title, uniqueWords);
}
long uniqueWords = row.get(1).getLongValue();
System.out.printf("total unique words: %d\n", uniqueWords);
}
result = result.getNextPage();
}
// [END print_results]
}
}
From the looks of your error code, it's probably due to your project ID not being set: "no_app_id". Here is how to set your project ID for app engine: https://developers.google.com/eclipse/docs/appengine_appid_version.

Related Links

Is it possible to configure a Java web app to run with Apache Wink Server and JAX-RS 2.0?
java, A window with 2 buttons
Add Radio Button in List
iText Output Missing Unicode Characters
Regex optional matching
Android Studio Start Failed: fatal error initializing 'com.intellij.util.net.ssl.certificatemanager'
Output of generating new string array does n't come as expected
Android sqlite database getallRows() checking for null gives error [duplicate]
Trying to call on a superclass method, but pass a subclass's parameters?
If my game has three lives, how do I subtract one life if the player gets an answer incorrect?
Table with a for loop and formatting
javax.xml.ws.WebServiceException: java.io.IOException: Error writing to server Tomcat 8
list all pythagorean triplets in java
Immutability and synchronization in Java
Setting max date in calenderView to a specific date
Find how many of one element is in a 2D array

Categories

HOME
coq
pypi
gremlin
smarty
layout
onedrive
session
webstorm
q
youtube-api-v3
sqlite3
ebean
convolution
esper
windows-10-universal
facebook-php-sdk
quicklook
php-7.1
fortumo
fallback
visual-studio-cordova
vaadin7
serilog
code-review
karma-jasmine
alpine
dbext
paging
object-detection
clickonce
opennlp
fopen
unboundid
textmate
xmlreader
android-nestedscrollview
appfabric
stacked
leading-zero
core-plot
segment
wso2carbon
youcompleteme
termination
prolog-setof
errordocument
darcs
webdriverjs
topbeat
firmata
static-ip-address
gridpane
vmware-tools
android-textview
log4c
impresspages
ready-api
design-by-contract
ptrace
asp.net5
freelancer.com-api
ford-fulkerson
reactive-banana
quicklisp
nsight
sniffer
dundas
facebook-graph-api-v2.4
qcodo
device-manager
dml
reactfx
kgdb
openlaszlo
quantlib-swig
inbox
spring-io
apc
shellexecute
padarn
orchardcms-1.7
enterprisedb
simba
newtonscript
transactionscope
whoosh
oncheckedchanged
android-sdk-2.1
cxxtest
gamma
ncqrs
anti-piracy
ubuntu-9.04

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App