大战 GAE for java 莫名其妙的问题

[color=red][i]最新超级简单修改方式看[url]http://zhuyx808.iteye.com/blog/379107[/url][/i][/color]

GAE for java 已经推出好长时间了,论坛上也有各种各样的介绍,按照介绍一步步搞,谁知竟然会出乱七八糟的问题,我下的是for eclipse的插件,至于搭建环境、建立工程我就不废话了,只说说其中遇到的问题,首先不是问题的问题就是把他们的demo下的guestbook给拷出来建立在myeclipse上,结果上来就出现一个红叉叉,报jsp异常,本地运行没问题,我就再没注意过这个叉叉了,其实这个也是一个问题,这个暂且先不谈。
因为本地运行没问题,所以就申请开通开始部署。结果部署的时候问题又来了,第一个问题忘了是什么问题,反正g了下有人说是war下面的appengine-generated下面的datastore-indexes-auto.xml里面有注释的问题,我把上面的注释删了,重新部署,于是第2个问题就来了,第2个问题就是报这个异常:java.lang.IllegalStateException: cannot find javac executable based on java.home
这个问题报的郁闷,检查下工程的各种属性没发现问题,又检查myeclipse的设置也没什么问题,于是只要继续g ,在http://onlypython.group.iteye.com/group/blog/366471找到[quote]

上述错误的本质原因并不是你的JDK有问题,而是由于编码的原因! 因为下载的GAE JAVA SDK涉及到的编码问题。一般情况下windows的默认编码都为GBK之类,而*nix都是utf-8之类。 google当然也是需要utf-8才好的;所以报错中的javac 其实很可能是由于编译时需要加 -encoding 参数而已!
[/quote]
我心里就纳闷了不太可能吧,于是把工程的属性设置成UTF-8,继续部署,同样的问题继续出现。TNND 到底怎么回事,既然不能用插件,我用ant部署应该没问题吧,于是打开build.xml,终于,问题发现了,先看原文件:

<project name="Guestbook" default="datanucleusenhance">
<property name="sdk.dir" location="../.." />

<import file="${sdk.dir}/config/user/ant-macros.xml" />

<path id="project.classpath">
<pathelement path="war/WEB-INF/classes" />
<fileset dir="war/WEB-INF/lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="${sdk.dir}/lib">
<include name="shared/**/*.jar" />
</fileset>
</path>

<target name="copyjars"
description="Copies the App Engine JARs to the WAR.">
<copy
todir="war/WEB-INF/lib"
flatten="true">
<fileset dir="${sdk.dir}/lib/user">
<include name="**/*.jar" />
</fileset>
</copy>
</target>

<target name="compile" depends="copyjars"
description="Compiles Java source and copies other source files to the WAR.">
<mkdir dir="war/WEB-INF/classes" />
<copy todir="war/WEB-INF/classes">
<fileset dir="src">
<exclude name="**/*.java" />
</fileset>
</copy>
<javac
srcdir="src"
destdir="war/WEB-INF/classes"
classpathref="project.classpath"
debug="on" />
</target>

<target name="datanucleusenhance" depends="compile"
description="Performs JDO enhancement on compiled data classes.">
<enhance_war war="war" />
</target>

<target name="runserver" depends="datanucleusenhance"
description="Starts the development server.">
<dev_appserver war="war" />
</target>

<target name="update" depends="datanucleusenhance"
description="Uploads the application to App Engine.">
<appcfg action="update" war="war" />
</target>

<target name="update_indexes" depends="datanucleusenhance"
description="Uploads just the datastore index configuration to App Engine.">
<appcfg action="update_indexes" war="war" />
</target>

<target name="rollback" depends="datanucleusenhance"
description="Rolls back an interrupted application update.">
<appcfg action="rollback" war="war" />
</target>

<target name="request_logs"
description="Downloads log data from App Engine for the application.">
<appcfg action="request_logs" war="war">
<options>
<arg value="--num_days=5"/>
</options>
<args>
<arg value="logs.txt"/>
</args>
</appcfg>
</target>

</project>

注意到上面 <property name="sdk.dir" location="../.." /> 这一句,sdk的目录并不在工程的上面,于是改成自己的插件目录${MyEclipse.home}\eclipse\plugins\com.google.appengine.eclipse.sdkbundle_1.2.0.v200904062254\appengine-java-sdk-1.2.0 其中${MyEclipse.home}就是你的myeclipse/eclipse的安装目录,改好后部署上传一切OK,于是试着把datastore-indexes-auto.xml里添加注释,同样没问题。这时竟然发现工程上的红叉叉也没了。oh yeah~~~~~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值