这几天在SAE上部署Java Web代码时,遇到了一些问题,在此做一个小结,便于以后学习。
Java程序只支持war包的提交,不能直接提交其它类型的文件,应该先打包成.war后缀名的文件;最简单的一种方式是直接将zip文件的后缀名改为war即可。
在打包的过程中有几点需要注意:
1. 打包的内容应该是对应工程下面的文件,而不是将工程打包
如图,工程wxfirst的文件结构如图1(实际WEB-INF目录下还有一个web.xml文件,servlet目录下有文件CoreServlet.java,util目录下有文件SignUtil.java,这三个文件的内容见参考资料[1],在这里上述文件没有显示出来)。
图1.
如果直接对工程wxfirst打包,并将打包后的文件wxfirst.war以网页的形式增加到SAE的相应版本中(参考http://sae.sina.com.cn/doc/java/tutorial.html#id3)。如图2所示,点击相应的网址访问,会出现如图3所示的结果。
图2.
图3.
直接在浏览器地址栏中输入http:// 1.wxfirst.sinaapp.com/wxfirst/coreServlet,/coreServlet是CoreServlet.java配置的路径,则会提示如图4的错误。
图4.
上网找了很久的资料,最后在资料2的网页中看到有人回复“打包的时候多了一层目录”,才想到可能是这个原因。于是重新对WEB-INF(不是wxfirst)目录进行打包,再在地址栏输入http://1.wxfirst.sinaapp.com/coreServlet,结果如图5(该错误是代码自身的原因)。
图5.
2. Servlet.jar不能添加到工程中
如果将Servlet.jar文件放在lib目录下,也会出现图3、图4的情况。只有在不增加该文件的情况下,才能出现图5所示的结果。
参考资料
[1] http:// blog.csdn.net/forlong401/article/details/19213919
[2] http:// cloudbbs.org/forum.php?mod=viewthread&tid=20372