2019独角兽企业重金招聘Python工程师标准>>>

转自: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

转载于:https://my.oschina.net/gaoxadmin/blog/419205

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

  1. java spring mvc 上传_Java Spring MVC 上传下载文件配置及controller方法详解

    下载: 1.在spring-mvc中配置(用于100M以下的文件下载) 下载文件代码 @RequestMapping("/file/{name.rp}") public Respo ...

  2. [CentOS Python系列] 二.pscp上传下载服务器文件及phantomjs安装详解

    从2014年开始,作者主要写了三个Python系列文章,分别是基础知识.网络爬虫和数据分析. Python基础知识系列:Pythonj基础知识学习与提升 Python网络爬虫系列:Python爬虫之S ...

  3. java文件下载controller_Java Spring MVC 上传下载文件配置及controller方法详解

    下载: 1.在spring-mvc中配置(用于100M以下的文件下载) 下载文件代码 @RequestMapping("/file/{name.rp}") public Respo ...

  4. npm、pnpm和yarn使用(官网、安装、命令行、上传自己的包、包版本号详解、更新卸载包、查看所有版本、同等依赖peer、可选依赖optional)

    目录 npm 官网 npm install packageName npm i packagename@版本号 安装git上发布的包 npm ci 注意(对比npm i) npm outdated n ...

  5. java读取服务器图片大小,SpringMVC中MultipartFile上传获取图片的宽度和高度详解

    SpringMVC一般使用MultipartFile来做文件的上传,通过MultipartFile的getContentType()方法判定文件的类型(MIME) ".doc":& ...

  6. php android 图片上传,android上传图片到PHP的过程详解

    这篇文章主要介绍了android上传图片到PHP的过程详解,需要的朋友可以参考下 今天在做上传头像的时候,总是提交连接超时错误,报错信息如下:XXXXXXSokcetTimeOutXXXXXXXX 然 ...

  7. 上传声音 微信小程序_图文详解微信小程序中调用录音功能和音频播放的方法...

    老规矩,先几张图. 1.为了进来看得清楚.刚开始没有加载音频列表.代码往前挪一挪即可. 2.按住 录音按钮的时候会出现麦克风.中间的麦克风是个帧动画. 其实就是用js控制图片显示隐藏.没啥好说的.这里 ...

  8. 使用 Git上传代码到coding.net代码仓库详解

    1.在coding上创建项目 选择HTTPS协议 2.在桌面打开git命令框,输入git clone Http协议路径 3.输入 cd 文件名(这个文件是通过步骤2产生的) 4.经过步骤3就可以进入项 ...

  9. linux pscp 上传_windows与linux传输工具pscp详解

    朋友的一个sns网站之前一直用的是windows 2003的服务器, 维护起来确实不是很方便,出于管理,稳定,以及安全它一直是我的心病, 正赶上最近朋友的网站要改版, 而且要做一些后台的任务,于是想把 ...

最新文章

  1. C语言:在屏幕上打印杨辉三角形
  2. jvm在windows和linux,理解JVM如何使用Windows和Linux上的本机内存
  3. Jfinal 文件上传
  4. 【python】去除字符串头尾的多余符号
  5. 【转】零拷贝的实现原理
  6. Flutter进阶—实现动画效果(三)
  7. 三、Java基础工具(1)_常用类——数学相关类
  8. ubuntu安装tomcat7
  9. java list 转json 字符串_fastjson将java list转为json字符串
  10. Pytorch GAN实战 MINIST手写数字识别分布解析
  11. 【阿卡乐谱】【日常分享】超级强大的简谱-《大海啊,故乡》
  12. 给大家讲解一下 AIDL原理分析
  13. 雷达系统和雷达信号分析02
  14. 安装pytorch1.10.0/cu111时报错:no matching distribution found for torchvision==0.11.0+cu111
  15. DSP48E功能描述
  16. java中执行ddl语句,DDL(数据定义语言)
  17. 1.7 基尔霍夫定律
  18. JVM XMX与XMS参数
  19. Ubuntu使用gzip与bzip2与rar和tar压缩解压
  20. 手把手教你在centos7安装k8s集群

热门文章

  1. 没有规矩,无以成方圆——浅谈国内IT服务管理产品标准建立的必要性(之二)...
  2. 怎样查找this的指向
  3. 编码,深浅拷贝和文件操作
  4. Winform开发框架之系统重新登录、自动登录实现
  5. Activity从创建到显示的整个过程
  6. OpenStack 关闭安全组
  7. hibernate 中set的3个属性(inverse,cascade,order_by)
  8. 基于最优化方法的超宽带通信信号设计
  9. 你了解 Performance Timeline Level 2 吗?
  10. Linux学习准备工作