今天更新github主页的过程中,想使用GAE部署一个Java Web服务来更好的支持网站动态性(关键是利用了免费的GAE资源),结果遇到了2个大问题。
1.GDT插件无法登陆GAE账户
错误1:登陆页白页,由eclipse无法访问google导致,可FQ并配置eclipse代理
在配置好eclipse/gdt/gae-sdk等环境后,发现错误1,gdt连google登陆页面都无法打开,那么首先要保证FQ成功,其次要设置ecipse网络代理,或者直接设置internet局域网代理。
错误2:能访问google登陆页,但无法登陆,报错为 PKIX:unable to find valid certification path to requested target,由g-o-a-g-e-n-t证书导致,可将其证书CA.crt导入jre中
PC已经使用g-o-a-g-e-n-t配置好FQ功能,且配置了eclipse局域网代理,也就是gdt是可以访问google登陆页面,但输入账号密码后一直无法登陆,登陆gae一直失败。
各种百度谷歌后,在这个帖子中查到似乎是跟证书有关,且是jrelibsecuritycacerts中无法查到该证书。
仔细想想整个过程中没有使用到任何证书,只有g-o-a-g-e-n-t server中的CA.crt,尝试性的将该证书导入到jrelibsecuritycacerts,遂成功。
导入证书的过程中还存在3个问题。
其一是eclipse使用的jre环境,可能是java/jdk/jre,也可能是java/jre,所以证书导入路径要保证一致性,不行可在两处都导入。
其二是打开cacerts导入证书时需要密码,其为changeit,可使用portecle工具导入证书。可参考该帖子。
其三是使用g-o-a-g-e-n-tlocalCA.crt无效时,使用XXNET提供的XX-Net-2.5.5datagae_proxyCA.crt替换。
2.无法调试本地GAE项目
在运行GAE项目时,出现上传检测错误,访问超时。 https://appengine.google.com/api/updatecheck?runtime=java&release=1.9.30×tamp=1446685788&api_versions=[%271.0%27]
这由于需要为该项目配置代理,RunAs-RunConfigurations-Arguments,添加代理参数-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8087 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8087,再次运行即可。
3.GDT插件无法上传JAVA代码
错误1:使用GDT上传过程中生成上传目录后,Initial update...时卡死,没有任何错误
没有针对该问题直接解决,后来发现GDT上传是采用appcfg.cmd上传的,直接针对错误2进行排查,后来发现是cmd中无法访问代理导致
错误2:改用cmd中调用GDT-JAVA-SDK提供的上传appcfg.cmd,发现网络超时错误 Connection Read timeout!
https://appengine.google.com/api/updatecheck?runtime=java&release=1.9.30×tamp=1446685788&api_versions=[%271.0%27]
cmd中访问gae地址时,需要post本地文件到GAE,而该地址一直无法访问,但在浏览器中是可以的,则表明应该是代理的问题,
后来查证appcfg.sh可以配置代理参数,通过 -p PROXYHOST:PORT可解决。完整命令为 ./appcfg.sh -p 127.0.0.1:8087 update x:/project/war/。
在post文件的过程中,可能会遇到504代理超时的问题,耐心等待最后会成功。
整个过程到此结束,接下来可以好好利用GAE提供的免费server来构建自己的github主页。