`

Google App Engine for Java 开发笔记

    博客分类:
  • java
阅读更多
最近使用GAE开发一个小应用,开发过程中发现几个问题在这里做下笔记备忘,同时希望对其他人也有所帮助。
问题一:只要在项目中添加JSP文件,再进行Deploy时就会报如下错误
Scanning for jsp files.
Compiling jsp files.
Compiling java files.
java.lang.IllegalStateException: cannot find javac executable based on java.home, tried "E:\Program Files\Java\jre1.5.0_16\bin\javac.exe" and "E:\Program Files\Java\bin\javac.exe"

解决办法:修改Eclipse的JRE路径配置(默认情况下Eclipse使用jre下的JAR包,解决上面的问题我们需要把Eclipse依赖的JAR包指向JDK下),具体步骤window->preferences->java->install JREs
问题二:jsp不支持EL
产生这个问题的原因有两个,GAE Eclipse插件生成的项目默认是使用servlet2.5的标准,而2.5版本是默认忽略EL的,所以JSP中使用EL会失效。另一个原因,插件生成的WEB.XML强制绑定了servlet2.3的DTD,如下所示
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd">

servlet2.3版本是不支持EL的。所以上面这个原因才是真正导致EL在JSP中被忽略的原因。
我解决这个问题的办法是将WEB.XML的版本制定为servlet2.4版本,因为servlet2.4默认支持EL。操作方式就是去掉上面的DTD,然后加上下面的schema定义
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">	
分享到:
评论
4 楼 SeanHe 2010-05-25  
有没有试过使用servlet 2.4的DTD?
3 楼 jin52yang 2010-05-25  
我也遇到了同样的问题,我按照你的方法做了但是没有解决啊,希望帮忙一下。
我默认生成的WEB.xml是2.5版本的,不管是页面还是配置文件中添加不忽略EL,都是不好用的。
希望可以给我一些指点,谢谢!
2 楼 cng1985 2009-08-16  
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
1 楼 Laynepeng 2009-07-26  
使用GAE会遇到的问题多着了~~

最近这段时间GAE很不稳定阿,你没遇到问题吗?前段时间本来想把Blog搬到GAE的,但是每天总有几个小时访问不了,于是又撤回WP了~~

相关推荐

Global site tag (gtag.js) - Google Analytics