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


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

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

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

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

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

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

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

    }5HNQKS{(ORB`~[I~]]I1R0.jpg 
    需要注意的几点:
    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应用的工程文件以及连接数据库后返回的信息截图:

    20140429124828.png

    20140429124653.png

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

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

  • 相关阅读:
    20145317《信息安全系统设计基础》第六周学习总结(1)
    20145317《信息安全系统设计基础》第五周学习总结2
    20145317 《信息安全系统设计基础》第5周学习总结
    20145317《信息安全系统设计基础》第三周学习总结
    20145317 《信息安全系统设计基础》第二周学习总结
    20145317彭垚《信息安全系统设计基础》第1周学习总结
    20145317《信息安全系统设计基础》第0周学习总结
    20145317彭垚 java课程总结
    20145317彭垚 《Java程序设计》第五次实验报告
    20145315 《信息安全系统设计基础》第十周学习总结
  • 原文地址:https://www.cnblogs.com/gxbk629/p/4510061.html
Copyright © 2020-2023  润新知