转自:http://blog.csdn.net/baiyuliang2013/article/details/24725995

SAE上传web应用(包括使用数据库)教程详解及问题解惑:

最近由于工作需求,需利用SAE平台,但在使用过程中遇到不少问题,比如如何上传应用,上传应用完毕后打不开,mysql连接不上等等,以及云豆的计费问题,结合个人使用心得,将在本帖一一解答。

1,上传web应用
首先,使用SAE平台需要注册自己的账号吧,这个就不说了,然后进入我的首页,会看到:
              
点击创建应用: 
二级域名是自己定义的,由数字和字母组成,不少于4位,应用名称一般要跟你上传的项目名相同,下面开发语言选择java,然后会出现: 
这个是JVM不同级别的自费信息,如果不是特别大的项目一般选择经济版,JVM数量选择1,那么jvm开启一小时,只会扣除5个云豆,关闭后,不再计费,点击最下面创建应用后便会进入应用列表:
 
点击项目名后进入应用的详细信息界面:
 
最上面的access key和secret key是在使用mysql数据库用到的,也就是连接mysql的用户名和密码,往下可以设置jvm的启动关闭,重启等,此时点击左侧菜单栏中的“代码管理”,之后:

在此处点击创建一个版本,一般第一个版本就填1,创建版本完毕后:
 
点击右边的操作——上传war包,至于怎么把你的项目打成war包,就不用我说了吧,点击上传OK后,第一个版本创建成功,此时你先看下你的jvm是否开启,然后点击该项目连接,查看是否部署成功,新手可以写一个简单的web项目比如helloword来熟悉流程,(打开应用出现的404或503等问题放在后面讲解)。

2,使用mysql数据库
一个复杂点的web项目是都需要数据库来支持的,那么怎么利用SAE提供的MySql数据库呢?首先在应用详细页,点击左侧菜单服务管理-MySql:

 
然后点击初始化mysql,
 
接着管理mysql,会出现mysql的操作界面,这个跟我们本地操作就很类似了:

 
需要注意的几点:
1.数据库名:app_项目名,这个是不可修改的,所以你的代码中或配置文件中的数据库名称要改成跟这个相同的;
2.数据库连接地址,在最上面圈着的地方:w.rdc.sae.sina.com.cn:3307
(地址和端口号);
3.连接数据库的用户名和密码(上面提到过):access key和secret key。

至于数据库连接的代码,想必大家都再熟悉不过了,可以用最原始的代码,可以用配置文件也可以用框架,下面我把我

的一个web应用连接数据库的代码贴出来功大家参考:

首先是配置文件:

DBhost=w.rdc.sae.sina.com.cn
DBport=3307
DBname=app_neteasy
DBuser=mwmk40zyk0
DBpassword=mi3hxh2212h3zz1lx5wklzw4wji3lxiklmkx1wlm
下面是具体实现方法:
private SqlManager() throws IOException

{

// 读取配置文件

bundle = new PropertyResourceBundle(SqlManager.class.getResourceAsStream("Config.properties"));

this.DBhost = getString("DBhost"); // 读取主机名

this.DBname = getString("DBname"); // 读取用户名

this.DBprot = getString("DBport"); // 读取端口

this.DBuser = getString("DBuser"); // 读取用户

this.DBpasswd = getString("DBpassword"); // 读取密码

// 设置mysql数据库的驱动程序和连接字符

jdbcDrive = "com.mysql.jdbc.Driver";

strcon = "jdbc:mysql://" + DBhost + ":" + DBprot + "/" + DBname;

}
其实这跟本地连接数据库的方法没什么区别,只是改一改数据库的连接地址和端口号以及用户名和密码,
现只贴出部分代码,稍后会把完整代码下载连接附上。

3.上传应用时所遇到的问题解惑:

1.不知道怎么创建应用和上传部署应用的上面已经详细讲解了;

2.上传完毕后,打开应用报404,503等错误如:
Error 404 - Not Found.No context on this server matched or handled this request.
Contexts known to this server are:

  • /1/neteasy ---> c.s.s.w.SaeWebAppContext{/1/neteasy,file:/data1/jetty_work/719/neteasy/jetty-0.0.0.0-11343-neteasy.war-_1_neteasy-any-/webapp/},/data1/www/htdocs/719/neteasy/1/neteasy.war [failed]
  • /2/neteasy ---> c.s.s.w.SaeWebAppContext{/2/neteasy,file:/data1/jetty_work/719/neteasy/jetty-0.0.0.0-11343-neteasy.war-_2_neteasy-any-/webapp/},/data1/www/htdocs/719/neteasy/2/neteasy.war
  • /neteasy/2 ---> c.s.s.w.SaeWebAppContext{/neteasy/2,file:/data1/www/htdocs/719/neteasy/2/},/data1/www/htdocs/719/neteasy/2

还有的是报Servlet is not a Servlet的,这多半是因为你的jdk版本过高或者你的jar包跟云端已有的jar冲突所致,解决方法:
将你的项目导出war包后,用压缩包形式打开,删除其中包含的servlet-api.jar,之后在上传war包;

3.连接不上数据库,这个基本上属于你的代码问题,要么就是你代码本身有问题,若在本地跑的很顺溜,但就是连不上云端数据库,那多半是你的数据库连接地址,端口,以及用户名密码有误,请仔细检查

注意点:
1.上传web应用时,先进行瘦身,也就是删除没必要的jar或者jsp或者java文件,可以尽量避免jar冲突也可以节省空间(SAE规定一个项目最大不超过100M);

2.创建一个应用,一般只需创建两个版本就可以了,除非有必要,第一个版本放那不用管(若只有一个版本的话是不允许覆盖的,所以至少需两个版本),第二个可以更新迭代你的应用了(直接上传覆盖);

3.云豆计费,每个jvm每小时5云豆,设置自动回收,会在该应用2小时没有访问时自动休眠,所以做测试的童鞋,在不用的时候可以关闭,已节省云豆,通过实名认证可以额外获得2000,够用一阵子了。。。

下面是我的web应用的工程文件以及连接数据库后返回的信息截图:

最后附上我该项目的demo,其中包含了连接数据库的关键代码:

http://download.csdn.net/detail/baiyuliang2013/7269897

SAE上传web应用(包括使用数据库)教程详解及问题解惑的更多相关文章

  1. Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程

    Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一) 图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图.那么如何在Asp.Net Core W ...

  2. PHP 合理配置实现文件上传及保存文件到数据库

    合理配置 php.ini 如何配置php.ini实现PHP文件上传功能.其中涉及到php.ini配置文件中的upload_tmp_dir.upload_max_filesize.post_max_si ...

  3. SAE上传文件到storage

    还有什么比代码更清晰的讲解 html代码: 一定需要下面这个: method="post" enctype="multipart/form-data" < ...

  4. eclipse  sae上传代码

    eclipse  sae上传代码http://www.sinacloud.com/doc/sae/java/tools.html#eclipse 来自为知笔记(Wiz)

  5. kindeditor在sae上传文件修改,适合php

    kindeditor在sae上传文件修改,适合php 当前位置: 首页  > 论坛  > 经验共享 用户登录   新用户注册   主题: kindeditor在sae上传文件修改,适合ph ...

  6. js插件---IUpload文件上传插件(包括图片)

    js插件---IUpload文件上传插件(包括图片) 一.总结 一句话总结:上传插件找到真正上传位置的代码,这样就可以知道整个上传插件的逻辑了, 找资料还是github+官方 1.如何在js中找到真正 ...

  7. Microsoft Dynamics CRM 批量上传web资源(非官方WebResourceUtility)并替换实体图标

    背景: 去年以前可以按照目录WebResourceUtility批量上传web资源,昨天发现用不了了,拿到WebResourceUtility源码改了一下都不是很方便,感觉官方写的太冗余,太长了,跟我 ...

  8. php相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子

    相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子包括五个部分: 一.相册首页 <html> <head> <meta charset="utf- ...

  9. 巨人大哥谈Web应用中的Session(session详解)

    巨人大哥谈Web应用中的Session(session详解) 虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术. ...

随机推荐

  1. SQL注入小结

    分类学习有利于条理化知识,大致的SQL注入分为三种: 1.BealeanBase 2.TimeBase 3.ErrorBase 1.从最简单的说起,基于布尔类型是最常见的SQL注入方式 select ...

  2. TFS2008 安装图解(详细版本)(转载)

    由于公司准备上TFS,最近开始学习搭建TFS环境,并为同事讲解TFS的使用,在虚拟 机中搭建测试环境,遇到了很多问题,总结成一篇博客,跟大家交流一下: 我是从微软公司官方网站下载的TFS 2008 1 ...

  3. [Socket网络编程]由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。

    原文地址:http://blog.sina.com.cn/s/blog_70bf579801017ylu.html,记录在此方便查看 解决办法: MSDN的说明: Close 方法可关闭远程主机连接, ...

  4. 12个常用的js正则表达式

    在这篇文章里,我已经编写了12个超有用的正则表达式,这可是WEB开发人员的最爱哦. 1.在input框中只能输入金额,其实就是只能输入最多有两位小数的数字 //第一种在input输入框限制 <i ...

  5. 用windbg+sos找出程序中谁占用内存过高,谁占用CPU过高(转载)

    原文地址: http://www.cnblogs.com/Lawson/archive/2011/01/23/1942692.html 很早看到windbg+sos方面的知识,一直没仔细学习,也许因为 ...

  6. 基础知识系列☞Abstract和Virtual→及相关知识

    转载地址→http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html 在C#的学习中,容易混淆virtual方法和abstract方法的 ...

  7. 修改Flume-NG的hdfs sink解析时间戳源码大幅提高写入性能

    Flume-NG中的hdfs sink的路径名(对应参数"hdfs.path",不允许为空)以及文件前缀(对应参数"hdfs.filePrefix")支持正则解 ...

  8. Java中的构造函数和重载

    一.Java中的构造函数 构造函数是对象被创建时初始化对象的成员方法,它具有和它所在的类完全一样的名字.构造函数只能有入口参数,没有返回类型,因为一个类的构造方法的返回类就是类本身.构造函数定义后,创 ...

  9. /run/systemd/private: No such file or directory

    今天执行consul脚本的时候报错 /run/systemd/private: No such file or directory reboot -f 重启电脑private文件就出现了.

  10. 直接拿来用!超实用的Java数组技巧攻略

    java编程语言经验分享 摘要:本文分享了关于Java数组最顶级的11大方法,帮助你解决工作流程问题,无论是运用在团队环境或是在私人项目中,你都可以直接拿来用. 本文分享了关于Java数组最顶级的11 ...