1

I'm trying to upload a groovy application in my GAE account but I don't understand why it doesn't work . it seems that it cannot connect to GAE link . I'm using IntelliJ with GAE plugin on Mac OSX. If i ping appengine.google.com from terminal it responds .

/Library/Java/Home/bin/java -Dfile.encoding=MacRoman -classpath /Users/themihai/appengine-java-sdk-1.4.2/lib/appengine-tools-api.jar com.google.appengine.tools.admin.AppCfg --email=mihai@pwk.co.uk update /Users/themihai/Downloads/restapi/classes/artifacts/restapi_war_exploded
********************************************************
Mar 28, 2011 9:46:31 PM com.google.appengine.tools.info.RemoteVersionFactory getVersion
Warning: Future versions of the Dev App Server will require Java 1.6 or later. Please upgrade your JRE.
INFO: Unable to access https://appengine.google.com/api/updatecheck?runtime=java&release=1.4.2&timestamp=1297891083&api_versions=['1.0']
********************************************************
javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:189)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1642)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1605)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1588)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1142)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:450)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1081)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)
    at java.net.URL.openStream(URL.java:1007)
    at com.google.appengine.tools.info.RemoteVersionFactory.getVersion(RemoteVersionFactory.java:76)
    at com.google.appengine.tools.info.UpdateCheck.checkForUpdates(UpdateCheck.java:99)
    at com.google.appengine.tools.info.UpdateCheck.doNagScreen(UpdateCheck.java:174)
    at com.google.appengine.tools.info.UpdateCheck.maybePrintNagScreen(UpdateCheck.java:142)
    at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:105)
    at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:63)
    at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:59)
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    at sun.security.validator.PKIXValidator.(PKIXValidator.java:56)
    at sun.security.validator.Validator.getInstance(Validator.java:146)
    at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:105)
    at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:167)
    at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(SSLContextImpl.java:320)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1020)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:120)
    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:574)
    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:510)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:888)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1131)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1158)
    ... 13 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:183)
    at java.security.cert.PKIXParameters.(PKIXParameters.java:103)
    at java.security.cert.PKIXBuilderParameters.(PKIXBuilderParameters.java:87)
    at sun.security.validator.PKIXValidator.(PKIXValidator.java:54)
    ... 24 more
Reading application configuration data...
Beginning server interaction for mm-image...
0% Creating staging directory
Mar 28, 2011 9:46:31 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
INFO: Successfully processed /Users/themihai/Downloads/restapi/classes/artifacts/restapi_war_exploded/WEB-INF/appengine-web.xml
Mar 28, 2011 9:46:31 PM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
INFO: Successfully processed /Users/themihai/Downloads/restapi/classes/artifacts/restapi_war_exploded/WEB-INF/web.xml
5% Scanning for jsp files.
8% Compiling jsp files.
Mar 28, 2011 9:46:34 PM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
INFO: Successfully processed /var/folders/bG/bGU9UQqbHlynbNOrNizcs++++TI/-Tmp-/appcfg5900327360969772030.tmp/WEB-INF/web.xml
20% Scanning files on local disk.
25% Initiating update.

Error Details:
Mar 28, 2011 9:46:34 PM org.apache.jasper.JspC processFile
INFO: Built File: /index.jsp


javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
Unable to update app: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
Please see the logs [/var/folders/bG/bGU9UQqbHlynbNOrNizcs++++TI/-Tmp-/appcfg7459353099144995200.log] for further information.

the appcfg7459353099144995200.log file says almost the same thing as below : cat /var/folders/bG/bGU9UQqbHlynbNOrNizcs++++TI/-Tmp-/appcfg7459353099144995200.log


Unable to update:
javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:189)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1642)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1605)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1588)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1142)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:450)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1004)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
    at com.google.appengine.tools.admin.ServerConnection.connect(ServerConnection.java:341)
    at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java:137)
    at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java:86)
    at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:582)
    at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:400)
    at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:112)
    at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:56)
    at com.google.appengine.tools.admin.AppCfg$UpdateAction.execute(AppCfg.java:553)
    at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:141)
    at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:63)
    at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:59)
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    at sun.security.validator.PKIXValidator.(PKIXValidator.java:56)
    at sun.security.validator.Validator.getInstance(Validator.java:146)
    at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:105)
    at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:167)
    at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(SSLContextImpl.java:320)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1020)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:120)
    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:574)
    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:510)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:888)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1131)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1158)
    ... 16 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:183)
    at java.security.cert.PKIXParameters.(PKIXParameters.java:103)
    at java.security.cert.PKIXBuilderParameters.(PKIXBuilderParameters.java:87)
    at sun.security.validator.PKIXValidator.(PKIXValidator.java:54)
    ... 27 more
com.google.appengine.tools.admin.AdminException: Unable to update app: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:62)
    at com.google.appengine.tools.admin.AppCfg$UpdateAction.execute(AppCfg.java:553)
    at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:141)
    at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:63)
    at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:59)
Caused by: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:189)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1642)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1605)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1588)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1142)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:450)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1004)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
    at com.google.appengine.tools.admin.ServerConnection.connect(ServerConnection.java:341)
    at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java:137)
    at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java:86)
    at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:582)
    at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:400)
    at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:112)
    at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:56)
    ... 4 more
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    at sun.security.validator.PKIXValidator.(PKIXValidator.java:56)
    at sun.security.validator.Validator.getInstance(Validator.java:146)
    at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:105)
    at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:167)
    at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(SSLContextImpl.java:320)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1020)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:120)
    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:574)
    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:510)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:888)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1131)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1158)
    ... 16 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:183)
    at java.security.cert.PKIXParameters.(PKIXParameters.java:103)
    at java.security.cert.PKIXBuilderParameters.(PKIXBuilderParameters.java:87)
    at sun.security.validator.PKIXValidator.(PKIXValidator.java:54)
    ... 27 more

mihai
  • 21
  • 4
  • Have you checked the /var/folders/bG/bGU9UQqbHlynbNOrNizcs++++TI/-Tmp-/appcfg7459353099144995200.log file? What does it say? – systempuntoout Mar 28 '11 at 20:49
  • @systempuntoout almost the same. I edited the question with the content of the log file . – mihai Mar 28 '11 at 21:03
  • see this answer http://stackoverflow.com/questions/4909504/com-google-gdata-util-authenticationexception-error-connecting-with-login-uri/4910013#4910013 – systempuntoout Mar 28 '11 at 21:05
  • @systempuntoout the command find / -name jssecacerts doesn't return any result. the second command returns many the paths below . /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home/lib/security/cacerts /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/security/cacerts /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/cacerts /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts /System/Library/Java/Support/Deploy.bundle/Contents/Home/lib/security/cacerts – mihai Mar 28 '11 at 21:24
  • @what move/copy action should I perform ? – mihai Mar 28 '11 at 21:26
  • try to add `-Djavax.net.ssl.trustStore=path/to/cacerts` – systempuntoout Mar 28 '11 at 21:34
  • It seems you are using a Java version lower than 1.6 but in your system seems it is installed (it's listed in the cacerts search). Can't you just set the 1.6 as the default JRE of your system? – systempuntoout Mar 28 '11 at 21:41
  • @systempuntoout I've tried to set 1.6 but it says it's invalid . also when I try to add the path to cert it says -Djavax.net.ssl.trustStore=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/security/cacerts -bash: -Djavax.net.ssl.trustStore=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/security/cacerts: No such file or directory . If I do ls -la on the directory I'm getting the following result http://pastebin.com/hwnRMqS8 – mihai Mar 28 '11 at 21:56
  • @mih you should add the -Djavax.net.ssl.trustStore when launching your deploy process with /Library/Java/Home/bin/java – systempuntoout Mar 28 '11 at 22:01
  • @systempuntoout I finally figured out a solution . The answer is posted below . After all you was right .. the issue was about the sec. certificates. – mihai Mar 28 '11 at 22:30

2 Answers2

1

The figured the solution somehow .. I don't know why it works anyway ... the certs link from 1.5 version seam inactive so I decided to remove it at all and copy the cert from 1.6 directory to 1.5 as below :


mihai:security mihai$ sudo rm -rf /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/security/cacerts
mihai:security themihai$ sudo cp /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/cacerts /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/security/

I hope it helps !

mihai
  • 21
  • 4
0

Upgrade your Java to 1.6, or (on OSX) set Java 1.6 to be default.

Peter Knego
  • 79,991
  • 11
  • 123
  • 154
  • @Peter Knego I couldn't find any java 1.6 for mac OS x 10.5(leopard). It seems default only for Mac osx 10.6. Isn't there any other "solution"fix ? – mihai Mar 28 '11 at 21:35
  • Try OpenJDK for OSX. I tried it with appengine some time ago and it did work. http://code.google.com/p/openjdk-osx-build/ – Peter Knego Mar 28 '11 at 21:42
  • Also, even under 10.5 there was Java6. I remember now. http://support.apple.com/kb/TA25133?viewlocale=en_US – Peter Knego Mar 28 '11 at 21:44
  • @Peter well it "was" a preview but seems it doesn't exist anymore. I will check openjdk – mihai Mar 28 '11 at 21:51
  • I'm sure I had Java6 when I was running 10.5. Is your system updated? http://support.apple.com/kb/ht1856 – Peter Knego Mar 28 '11 at 21:54
  • @Peter per google code doc "For now only SnowLeopard (10.6) is supported."... I've never thought that 10.6 it's so different than 10.5.. actually on the GUI there is no difference at all . – mihai Mar 28 '11 at 21:58
  • @peter I'm looking in the java versions and as you can see the 1.6 is somehow broken / unavailable . I have the system updated http://img849.imageshack.us/img849/2781/javae.png – mihai Mar 28 '11 at 22:07