I have been successfully developing with Google AppEngine/Android C2DM stuff for many months now.
Suddenly, after updating with all the latest Android and AppEngine dev SDK's etc., even the Eclipse built in "App Engine Connected Android Project" (from the Google Plugin for Eclipse) gives the following server error when testing the C2DM:
Server Error: Could not initialize class sun.security.pkcs11.SunPKCS11
Any ideas?
Thanks.
I had a similar problem, and the solution was to choose a different JDK. Not sure if this is your case too but here's the link to the SO question.
Hope it helps.
Related
My questions is in two folds: issue with app engine:update and with the app cfg.sh.
I looked on the web and could not find any workaround or potential answer that could help me fixing this issue.
My application is working with not much issue locally. Time now to give it a shot on production and upload it to google app engine. At first I tried doing this by using the 'app engine:update' from gradle (I'm using Android Studio). The execution failed with the following error message: "toolkit not found: apple.awt.ctoolkit. Why is this toolkit required and where can we find it?
While searching on the internet there were suggestions to use the appcfg.sh script to upload the application. It seemed to work at first until it asked for email and password. I used the exact same email/password I use to connect to goole-appengine and for some reasons it does not work.
Thanks.
After few hours investigating this issue I found out what the issues were. First thing, my account was compromised and received an email from Google. All I had is to confirm that was me trying to upload application to GAE. Secondly, my primary email address linked to my Google account belongs to another ISP. There is a security feature to disable and for security being a bit more loose. Creating a gmail account did the trick.
When attempting to run a Java application in the local Google App Engine instance I am getting the following error:
java.lang.NoClassDefFoundError: javax.servlet.FilterChain is a restricted class. Please see the Google App Engine developer's guide for more details.
My RemoteServiceServlet doesn't contain any reference to the FilterChain class.
I actually found the answer (or at least, an answer) to this question before posting it, but thought that it was worth putting it onto SO for anyone else who has the same problem. The solution was to revert back to an earlier JDK. I was using 1.7.0_55, and when I went back to 1.7.0_21 the problem went away. I found the solution here. Using Eclipse the JDK version can be changed in the Debug Configurations dialog, on the JRE tab.
I have been successfully using Netbeans to develop and deploy an app to the Google App Engine for ages through various application versions. That is all working normally and fine.
However (the problem), through the same account I created a new application (at the Google end) and at the application end the correct application id is in appengine-web.xml with a version of 1. All runs locally perfectly. But as soo as I deploy to GAE it fails:
com.google.appengine.tools.admin.HttpIoException: Error posting to URL:
404 Not Found
This application does not exist
Unable to update app: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=
404 Not Found
This application does not exist (app_id=u
Why??????
I have spent hours looking through the web for a solution. Lots of people have a similar problem but what is the solution? How can one app upload fine and the second fails?
PLEASE can someone give me some suggestions on how to fix the problem and successfully deploy?
I use Netbeans and have tried 6.9, 7.1, and 7.2 (I even tried installing Eclipse to solve the problem but it was horrendous to get going so I'm back to Netbeans). JDK 1.6.
Help!
Of course it works this way. After finally seeking help (from you chaps), within minutes I solve the problem (blind luck).
In case it helps anyone else, the basic issue was Google's account authentication model...
I needed to generate an application-specific password in Google Accounts (https://accounts.google.com/IssuedAuthSubTokens#accesscodes - that is, the Authorized Access to your Google Account area) to be used with the new application.
Then I needed to clear the existing email/password in Netbeans. This is a bit messy as I did that by deleting the 'deployment.properties' file you eventually find in C:\Users\User.netbeans\7.1\config\Preferences\org\netbeans\modules\j2ee\appengine.
You'll note I went back to Netbeans 7.1 because Netbeans 7.2 seems to store it in a different place which I couldn't find.
Back to Netbeans and hit the 'Deploy to Google App Engine' menu choice. It starts then asks for authentication. I used my normal (account) emailid and then the NEW application specific password. Miracle of miracles, it worked and the app fired up live.
I went and got a coffee
Perhaps Google could provide a slightly more meaningful error code than 404 Not Found???
Hopefully that helps anyone else with a similar problem.
Today, I had kind of the same problem. After some trial and error I found the solution.
Basically, starting from Netbeans 7.2. up, username and password are stored in something called "keyring".
In Windows 8 I found it under my current users directory: AppData\Roaming\NetBeans\7.3.1\config\Preferences\org\netbeans\modules\keyring.
I had to delete the GAE password information from the configuration file there. Then I cleared some registry keys (that might not be mandatory) and restarted Netbeans IDE. Then got prompted for new credentials.
See the full HowTo under:
http://donkeytech.wordpress.com/2013/08/06/change-google-app-engine-deployment-userdata-in-netbeans-from-7-2/
Using Eclipse, I am experiencing an error when trying to deploy a rather basic web app with JAX-RS and JAXB. It runs okay locally, but when trying it on the remote servers I get the message shown below...
'Deploying to Google' has encountered a problem / This application does not exist
Below shows my appengine-web.xml
The XML file illustrates that I am using the same name in the xml as what's specified in the project properties...
The output window show...
------------ Deploying frontend ------------
Preparing to deploy:
Created staging directory at: '/var/folders/n8/6by626014jbfc0dwmxnb0ly00000gn/T/appcfg2754901216637807129.tmp'
Scanning for jsp files.
Scanning files on local disk.
Initiating update.
com.google.appengine.tools.admin.HttpIoException: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=hillingarincident&version=0&
404 Not Found
This application does not exist (app_id=u'hillingarincident').
Debugging information may be found in /private/var/folders/n8/6by626014jbfc0dwmxnb0ly00000gn/T/appengine-deploy447984481661870877.log
The referenced debug logs show...
Unable to update:
com.google.appengine.tools.admin.HttpIoException: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=hillingarincident&version=0&
404 Not Found
This application does not exist (app_id=u'hillingarincident').
at com.google.appengine.tools.admin.AbstractServerConnection.send1(AbstractServerConnection.java:293)
at com.google.appengine.tools.admin.AbstractServerConnection.send(AbstractServerConnection.java:253)
at com.google.appengine.tools.admin.AbstractServerConnection.post(AbstractServerConnection.java:232)
at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:644)
at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:449)
at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:124)
at com.google.appengine.tools.admin.AppAdminImpl.doUpdate(AppAdminImpl.java:371)
at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:53)
at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:433)
at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:148)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Any answers will be appreciated. At one point my browser was not logged in to the target google account, so I swapped to the correct one a little later, Google does render the application name as expected.
Okay, this was simple in the end! Eclipse performs an auto-login to the Google account, unfortunately I created the Eclipse project whilst being logged in to one Google account and then tried to specify the application name afterwards.
You'll see in the bottom-right (or bottom-left in some versions) a Google icon with the name of the user that you are logged in as. If that's not the account where your application is defined, then simply logout of that account, then login as the correct Google account.
Now there's no error :-)
I know this question is super old but I had this issue all day and finally I found a solution. Maybe it will help someone out in the future.
After you create a project in Google Cloud Platform, you must go to google cloud shell in your project and run the command
gcloud beta app create
After you run this command, you will get prompted to choose a region. Then go back to eclipse and try deploying it. It worked for me.
There are not just 1 way can cause this problem. For me, I have this problem when I create the project using Maven. But I don't have the same issue if I directly create the project from the Google plugin.
There might be another issue, when you register with Google App Engine, you receive email indicating your activation. If you have not received the email yet, this problem could occur too.
Another issue could be to use the gmail account for the Google App Engine to avoid any such errors.
Sorry in advance for the long post but the problem I am facing here is quite crucial for me, so here we go...
I have a Eclipse GWT (2.0) Web Application using the the GAE and making transactions with its datastore.
On the other hand I would like to make sure that I can also deploy this web application on another infrastructure than the Google App Engine. Therefore I wanted to debug my web app using another servlet container (Tomcat 6) and another datastore (mySQL or MSSQL or any other, it doesn't really matter for now.)
In order to be able to debug an Eclipse web app with Tomcat it has to carry the Dynamic Web Project facet. If it doesn't then the new server that I add to Eclipse within Servers refuses to pick my GWT module in its list of supported apps. And not only GWT Web Apps don't carry it, but they don't even allow to alter the project's facets at all!
However, I found that adding the few relevant tags to the .project file can make it eligible within Eclipse to allow new project facets additions. Here are the tags I used:
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>com.google.gwt.eclipse.core.gwtNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
<nature>com.google.appengine.eclipse.core.gaeNature</nature>
So I did that, I could "turn" the project into an Eclipse's Dynamic Web Project and by doing so made it compliant to be added to the list of modules handled by - let's say - Tomcat 6 within Servers.
So that is exactly what I wanted, I can now switch between two debug configurations at will in Eclipse in order to debug my GWT web app either on the App Engine or on Tomcat.
The problem is that adding the Dynamic Web Project facet disturbs the DataNucleus enhancer. For some reason, once the project has become a Dynamic Web Project, it seems that the enhancer is never called anymore and I get this error message saying that some classes haven't been enhanced. Playing with the Google... App Engine... ORM classes or checking/unchecking the Enhancer in Builders wouldn't change anything. Please note that the enhancer issue affects both debug configurations: Tomcat as well as the App Engine.
So I was thinking of two solutions.
(1) Disable the Google plugin's DataNucleus enhancer and perform the enhancements myself. So I installed the DataNucleus plugin to configure project specific enhancements by following their guide about the Eclipse plugin.
They say that by right-clicking on the project one can activate DataNucleus support for the given project's files. Unfortunately, after installing the latest version of their plugin for Eclipse, no such right-click menu appears! I have therefore no way to tell their plugin that I want to activate the enhancements on a given project! How frustrating is that?? (I uninstalled/reinstalled the plugin, let perform plenty of pending Eclipse updates... but still no right-click menu.)
Does anyone know of another way to activate DataNucleus enhancement? For now I would be happy even with a pretty manual trick as it is very critical for me to be able to perform this cross-servlet container debugging within Eclipse.
(2) Use this tip from the official GWT website http://code.google.com/webtoolkit/doc/latest/FAQ_DebuggingAndCompiling.html#How_do_I_use_my_own_server_in_hosted_mode_instead_of_GWT%27s
Ok that works, and for now let's say that it saves my life BUT... it requires hosted mode and therefore doesn't allow the use of GWT 2.0.
So regarding this workaround I would like to know if there is a way to do something similar under GWT 2.0?
Turning the GWT Web App into a Eclipse Dynamic Web Project would be the ideal solution for pursuing the development of my application. As I said above, that way, it is very convenient to switch from the App Engine to Tomcat and vice versa. So I favour workaround (1) over workaround (2). But anyway, some help or piece of advice regarding any of the two points will be very very welcome.
Thank you for reading this very long post!
I always use Google Plugin (GPE) for GWT development even when I deploy to Tomcat, where I simply disable GAE option.
Perhaps, I don't understand the question - but I have had no problems debugging my app running on jetty and then transferring the app to Tomcat. Are there any issues that I need to learn?
In fact, even when my app is plain jsp or servlets, without any GWT, I still used GPE. But GPE would refuse to run jetty without either GWT or GAE enabled. So I simply create a dummy GWT app. In all my years, I had never had to worry about differences between jetty and tomcat. And if I had to write an app where I had to exploit the differences in tomcat over jetty, I would consider myself a lousy programmer.
The only reason I see to push JEE server into an external server, is for profiling the app as it runs on tomcat.
JEE is JEE, whether Tomcat or Jetty. I have heard that some people have a bias against using Jetty, like preferring starbucks over neighbourhood cafe. Coffee is coffee.
I don't understand. May be you could write another thesis to explain why you cannot debug on jetty and then deploy on tomcat.
I ran into the exact same problem, I could edit the properties of my project and see the datanucleus menu in the context so the plugin was definitely working. My issue was I was using the "Java EE" perspective in eclipse. (Juno btw). I switched to the "Java" context and my datanucleus menu was back and I was able to enable support and enable automatic enhancement.
Window -> Show perspective -> Other -> Java