`
zhuyx808
  • 浏览: 120306 次
  • 性别: Icon_minigender_1
  • 来自: 快来看~天上米有灰机
社区版块
存档分类
最新评论

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

    博客分类:
  • GAE
阅读更多
最新超级简单修改方式看http://zhuyx808.iteye.com/blog/379107

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找到
引用


上述错误的本质原因并不是你的JDK有问题,而是由于编码的原因!  因为下载的GAE JAVA SDK涉及到的编码问题。一般情况下windows的默认编码都为GBK之类,而*nix都是utf-8之类。 google当然也是需要utf-8才好的;所以报错中的javac 其实很可能是由于编译时需要加 -encoding 参数而已!

我心里就纳闷了不太可能吧,于是把工程的属性设置成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~~~~~
2
0
分享到:
评论
4 楼 tidelgl 2009-07-12  
哎,其实现在才明白了,只要把JDK引入就OK了....
3 楼 tidelgl 2009-07-12  
没看明白啊楼主,我的GAE项目里没有build.xml啊..
2 楼 zhuyx808 2009-04-19  
duker 写道

明明说了是个预览版本,出问题当然是难免的了..python 版本的比较稳定,建议用pyton. google 也不是神,不可能保证东西一出来就完美..-------------------------------&nbsp; 程序员代码管理&nbsp; http://mysharecode.appspot.com/gwt中使用flashhttp://code.google.com/p/gwt-flash-bridge/

只是纳闷一个build.xml竟然能影响整个工程
1 楼 duker 2009-04-18  
明明说了是个预览版本,出问题当然是难免的了..
python 版本的比较稳定,建议用pyton.
google 也不是神,不可能保证东西一出来就完美..


------------------------------- 
程序员代码管理 
http://mysharecode.appspot.com/
gwt中使用flash
http://code.google.com/p/gwt-flash-bridge/

相关推荐

Global site tag (gtag.js) - Google Analytics