App Engine not loading queue.xml - google-app-engine

I have a multi-module style Google App Engine App. It has a main Java Enterprise Project (eap), which references 3 Dynamic Web Projects. All works great.
Except task queues.. I am trying to create my own custom taskqueue. I created a WEB-INF folder in my EAP project, next to the META-INF folder.. And I created a queue.xml file there (pasted below) .
When I go to the Administrator area of cloud.google.com and click Task Queues, I only see the 'default' queue, my push queue is not there..
Upon deployment, I see no errors, just:
INFO: Successfully processed C:/!zebrastues/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/zebrasear/zebras-feeder.war\WEB-INF/queue.xml
My queue.xml (in a WEB-INF folder in my EAP, also added into the WEB-INF folder of my dynamic web projects, but it is ignored there).
<?xml version="1.0" encoding="UTF-8"?>
<queue-entries>
<queue>
<name>feedq</name>
<rate>1/s</rate>
</queue>
</queue-entries>

According to app engine modules documentation, optional configuration files like queue.xml and datastore-indexes.xml apply to all modules and should be placed in the WEB-INF directory that contains the default module.

Related

Deploying Google App Engine and Slim3 code

I am developing a GAE app and using Slim3 for persistence. I've created the model and the metamodel. When I try to deploy the app to GAE I get the following error when I run the app.
/register
java.lang.IllegalArgumentException: The meta data of the model(com.principalmvl.lojackmykids.meta.ContactMeta) is not found.
at org.slim3.datastore.DatastoreUtil.createModelMeta(DatastoreUtil.java:801)
at org.slim3.datastore.DatastoreUtil.getModelMeta(DatastoreUtil.java:729)
I looked at the lib directory under the WEB-INF directory and I see the generated .CLASS files.
What is the issue? Is there something I need to do on the import or a configuration so that GAE sees this classs?
I believe the issue is in the Eclipse project. I recreated a new project and copied all of my servlets and meta data models and it worked. I killed the other project since it seemed to be corrupt.

Appengine java project with additional runtimes

I am struggling, and failing, to create a Java project on appengine which should use a nodejs server running in the same project in a managed vm.
Anyone knows of an example/template for appengine projects with multiple runtimes?
I believe you can just upload them all to the same "project" with different named modules. One of you modules will have to be "default" and the rest are just other named modules in the same project. I think you can just set vm=true on both projects so that they're managed-vm modules, not regular appengine modules (there might be some extra config here for managed-vms).
For instance you have one java module with an appengine-web.xml that looks like
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>my-modules-app</application>
<module>default</module>
<version>1</version>
<vm>true</vm> // for managed-vm
...
...
</appengine-web-app>
I've never tried node on appengine, but with a second module in python you could configure your app.yaml (same application, different module)
application: my-modules-app
module: non-default-module
version: 1
vm: true // for managed-vm
runtime: python27
...
Presumably, you just need to configure the node.js project correctly to upload to the same application with a different module name.

Mapping project-name and application-id in GAE

I am trying to deploy my project on the appengine. I use maven to build it. Name of my project (say, project-name)and the application-id on the appengine are different. Is there a way to map the application-id with my project? Every time I say,
mvn appengine:update
I get an error message like
This application does not exist (app_id='project-name').
Since I have not said which application-id to map it with, it attempts to find an application-id same as y project name. How should I fix this?
The appengine-application.xml and appengine-web.xml files contain general information used by App Engine tools when your app is deployed. Put your application ID (the ID you registered when you created your application in the Google Developers Console) into <application> element.
appengine-application.xml
<appengine-application xmlns="http://appengine.google.com/ns/1.0">
<application>your-application-id</application>
</appengine-application>
appengine-web.xml
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>your-application-id</application>
<module>default</module>
<version>v1</version>
...
</appengine-web-app>
All the App Engine Configuration information is store in the appengine-web.xml You must need to update them as per your google app engine project information.
For example my
project id : prabhatabc-2012
& i want to run my application on the version : v2
so i need to update my appengine-web.xml file project id(prabhatabc-2012) in <application></application> and version in <version>v2</version>
<application>prabhatabc-2012</application>
<version>v2</version>

Can't deploy EAR to Google App Engine 1.9.4

I'm having troubles deploying a Google App Engine EAR application from Cloudbees. The application is built using 1.9.4. The application structure is similar to this project: https://github.com/deege/gae-rest-skeleton The main difference is I have more than just one module.
The problem I'm running into is how to configure the deployment. I have the "Post steps | Deploy Applications | Google App Engine (Java)" set up as the video from their site, but the configuration is expecting a WAR directory structure in the Fixed Directory section.
It's looking for a directory where a WEB-INF/appengine-web.xml file exists. I can point the configuration to the front end's directory where this does exist (and was doing that until I added more modules), but then it only deploys the front end. None of the other WARs are deployed.
I think it should be looking for the META-INF/appengine-application.xml file in the ear directory, since this describes the whole application (front ends and supporting modules).
Is there something I'm missing with the configuration? Do I need to deploy each module (WAR) separately?
Our deployer plugin was written before GAE added support for EARs. If ignoring the form validation and just entering the configuration that you know should work doesn't work then open a ticket.
I will be investigating and adding the extra form validation to the plugin at my next review window for the plugin, but an interim workaround of just ignoring any displayed errors should work
update
I have updated the app engine deployer plugin. Upgrading to version 3.0 or newer will allow you to deploy EAR exploded archives

Google App Engine Eclipse plugin without using GWT

I want to host a Java/AngularJS app on Google App Engine, and leverage the Eclipse plugin. I figure the most straightforward way to do this is:
From within Eclipse, start a new Google Web Project.
Go to project properties and uncheck GWT and DataNucleus.
Delete the generated java classes and GWT related stuff so you have an appengine.web.xml, web.xml, WEB-INF/lib, log4j properties, and a few other files left.
Put index.html under the war folder, sister to favicon.ico.
Change web.xml welcome file to index.html
Deploy and test that index.html is visible.
Deployment via Eclipse works fine, but myapp.appspot.com/ and myapp.appspot.com/index.html both return 404.
Simply put my use case is "how do I deploy an index.html to GAE (using Eclipse plugin) without the 800 pound guerilla that is GWT?"
I was unable to find good documentation on this.
Unchecking 'Use Google Web Toolkit' should be all you need to do to create a basic App Engine application without GWT, however, it will not create a sample index.html file. For that, you need to keep 'Generate project sample code' checked. This will create some extra Java files for you that you'll need to delete, but it's the closest you can get to what you described in your question.

Resources