JavaWeb:SSH项目在Sinaapp上的部署及域名的绑定

1. 首先在SAE中创建一个新应用

创建应用时,需要我们填写二级域名,比如XXXXXX。在“开发语言”一栏中,选择Java,然后选择对应的JVM级别。

2.查看应用信息
我们可以在“应用首页”查看当前应用的配置,如下图:

图1 应用的信息

其中,我们一定要注意,这里面的Access Key和Secret Key这两项,访问MySQL的时候,它们分别是用户名和密码

3.管理MySQL
在服务管理项,选择MySQL子项,我们可以对MySQL进行管理,最简单的就是使用PHPMyAdmin对数据库进行管理,如图2

图2

点进去之后,我们就可以管理MySQL了,如下图所示,主要我们的MYSQL的地址和端口号,还有数据库的名称。数据库的名称是app_XXXXXX,其中XXXXXX是app的名称。然后,我们就可以在当前数据库下建立数据库表了。

图 3

我们可以使用SQL,建立对应的数据库表,比如,本次SSH项目对应的数据库表为:

/*
Navicat MySQL Data Transfer

Source Server         : localhost_3306
Source Server Version : 50027
Source Host           : localhost:3306
Source Database       : sshmysql

Target Server Type    : MYSQL
Target Server Version : 50027
File Encoding         : 65001

Date: 2015-01-11 10:43:42
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for bbscomment
-- ----------------------------
DROP TABLE IF EXISTS `bbscomment`;
CREATE TABLE `bbscomment` (
  `uuid` varchar(36) NOT NULL,
  `messageid` varchar(32) NOT NULL,
  `username` varchar(32) NOT NULL,
  `content` varchar(512) NOT NULL,
  `touser` varchar(32) default NULL,
  `agree` int(8) default NULL,
  `disagree` int(8) default NULL,
  `date` varchar(40) NOT NULL,
  `top` int(8) default NULL,
  `Reserve1` varchar(128) default NULL,
  `Reserve2` varchar(128) default NULL,
  PRIMARY KEY  (`uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for bbsmessage
-- ----------------------------
DROP TABLE IF EXISTS `bbsmessage`;
CREATE TABLE `bbsmessage` (
  `uuid` varchar(36) NOT NULL,
  `username` varchar(32) NOT NULL,
  `content` varchar(512) NOT NULL,
  `imageheadurl` varchar(256) default NULL,
  `agree` int(8) default NULL,
  `disagree` int(8) default NULL,
  `share` int(8) default NULL,
  `address` varchar(40) default NULL,
  `date` varchar(40) NOT NULL,
  `top` int(8) default NULL,
  `phonemodel` varchar(32) default NULL,
  `Reserve1` varchar(128) default NULL,
  `Reserve2` varchar(128) default NULL,
  PRIMARY KEY  (`uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` varchar(36) NOT NULL,
  `name` varchar(32) NOT NULL,
  `course` varchar(64) NOT NULL,
  `score` int(11) NOT NULL,
  `remarks` varchar(512) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for userinfo
-- ----------------------------
DROP TABLE IF EXISTS `userinfo`;
CREATE TABLE `userinfo` (
  `uuid` varchar(36) NOT NULL,
  `username` varchar(32) NOT NULL,
  `password` varchar(16) NOT NULL,
  `imageheadurl` varchar(256) default NULL,
  `level` int(8) NOT NULL,
  `registertime` varchar(40) NOT NULL,
  `Reserve1` varchar(128) default NULL,
  `Reserve2` varchar(128) default NULL,
  PRIMARY KEY  (`uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4.部署SSH项目
在部署之前,我们需要注意的是:
4.1.数据库的配置
主要是url和用户名密码的配置:

jdbc.mysql.url=jdbc:mysql://w.rdc.sae.sina.com.cn:3307/app_XXXXXX
jdbc.mysql.username=Access Key
jdbc.mysql.password=Secret Key

4.2.数据库连接的配置
第一次上传代码之后,出现“Could not open Hibernate Session for transaction”错误,为了解决这个问题,我们需要在数据库连接池中添加配置信息

<!--创建mysql jdbc数据源 -->
	<bean id="c3p0dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close">
		<property name="driverClass" value="${jdbc.mysql.driver}" />
		<property name="jdbcUrl" value="${jdbc.mysql.url}" />
		<property name="user" value="${jdbc.mysql.username}" />
		<property name="password" value="${jdbc.mysql.password}" />
		<property name="testConnectionOnCheckin" value="true" />
		<property name="testConnectionOnCheckout" value="true" />
	</bean>

这里需要注意的就是testConnectionOnCheckin和testConnectionOnCheckout

另外,还有一个需要注意的是sessionFactory,
增加
<prop key="hibernate.autoReconnect">true</prop>
配置
例如:

<bean id="sessionFactory"
		class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<property name="dataSource" ref="c3p0dataSource" />
		<property name="hibernateProperties">
			<props>
			    <prop key="hibernate.autoReconnect">true</prop>
				<prop key="hibernate.show_sql">false</prop>
				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
				<prop key="current_session_context_class">thread</prop>
			</props>
		</property>
		...
</bean>

4.3.还需要注意的是,Hibernate的.hbm.xml文件,如果是MyEclipse自动生成的,它会有一个叫做“catalog”的字段,
最好将该字段删除。因为本地调试的数据库名称和SAE上的数据库名称有可能不一样。

5.打包上传
上述配置完成之后,使用MyEclipse,将项目Export成.war包,名称与app的名称一致,比如XXXXXX.war,然后上传到SAE空间

图 4

过一段时间(半分钟),我们就可以访问XXXXXX.sinaapp.com来查看部署的项目是否能够成功运行了。

至此,这个SSH项目就在sinaapp上部署成功了。

6.域名的绑定

新浪上的域名为二级域名,那我们怎么将二级域名与我们购买的一级域名绑定呢?

我一般在万网买域名,买完域名之后,需要个人身份的登记和认证,然后就可以解析了。

首先在SAE中“应用首页”,独立域名中,点击“绑定”独立域名:输入需要绑定的域名,然后会弹出如下对话框:

图 5

注意,被圈起来的内容,是我们在域名解析中用到的。

打开万网的解析页面,根据SAE的提示,在解析页面添加正确的CNAME信息和A记录信息。

比如,下面是我的某个域名的解析截图:

域名的绑定一般1分钟左右生效。

未经允许,不得用于商业目的

时间: 2024-10-10 01:24:45

JavaWeb:SSH项目在Sinaapp上的部署及域名的绑定的相关文章

SSH项目在服务器上初始化的过程

刚接触ssh项目的时候,只知道照着demo写,出现问题了就百度,解决了就沾沾自喜,现在尝试着做一些总结,提升下自己. 一个简单的ssh项目是怎么在服务器上部署(deploy),服务器又是怎么加载实例化项目代码了? 项目在Tomcat发布之后,Tomcat会加载这个项目到webapps目录,run,仔细看下Console上的日志发现,Tomcat先检查jar包,然后加载web.xml. 默认加载顺序为<context-param>---<listener>---<filter&

Node.js项目的线上服务器部署与发布

课程目录:第1章 课程预热对整个部署思路进行全流程介绍,通过 5 个不同类型项目,来演示从本地的仓库到最终线上稳定运行的整个项目部署发布流程,来帮助始终编程在一线的前端或者后端工程师,甚至是有 Coding 能力的产品经理,从操作流程和架构形态上,掌握从零开始的项目上线环节,掌握这关键一步,跨过去前端到后端,本地到线上,开发到生产...第2章 待部署的 5 个本地 Nodejs 项目分别介绍五个技术架构和产品形态的项目背景,一个 Nodejs 静态网站,普通的带数据库电影网站,手机 App 场景

Spring Boot框架开发的Java项目在CentOS7上的部署

需求:上级拿来一份Spring Boot框架开发的Java项目代码让我在服务器上运行起来,只说了一句该框架是自带了Tomcat(不用重新安装Tomcat),一份代码下有两个项目(一个管理端项目,一个用户端项目,等会会细说).我是一名运维,在上家公司只接触过在Tomcat下部署Java项目,自带Tomcat的没接触过,目前这个公司都是php软件攻城狮,所以只能靠自己了.幸好在一个学习交流群里碰到一位Java软件攻城狮,在该攻城狮的热心指导下项目成功运行.下面是详细步骤,知识点扩展及总结将在最后写出

Jenkins构建本地项目到服务器上自动部署的方法

最近在用Jenkins做项目的自动部署,由于项目需求,现在要在本地构建后再放到Tomcat里.以下是本地构建步骤: 名称填写好,下面的选项是可选的. 源码管理这里选择none. 触发器这里,我的是在凌晨3点强制构建.可选. 这里是最重要的一步:选择Execute shell选项.可以使Jenkins执行一些shell命令. 点击之后会出现这个界面,在Command输入框里输入要执行的shell命令. 我指向的是/home/data/crm这个目录下,然后让其执行mvn打包指令. 在Build里输

Centos下安装Jexus、.net,上传部署运行asp.net项目

第一次接触安装Jexus,原因是公司要在Linux系统上部署asp.net项目,所以从无到有,从慢慢学习怎么安装部署环境开始 官方网站推荐安装使用独立版,这样就不用单独安装mono.安装独立版的时候mono就已经包含在里面了,安装显示细节的时候就可以看到mono也在被安装. Jexus官方网站:https://www.jexus.org/ mono官方网站:https://www.mono-project.com/download/#download-line-centos 系统版本号:Cent

Node.js线上服务器部署与发布

第1章 课程预热对整个部署思路进行全流程介绍,通过 5 个不同类型项目,来演示从本地的仓库到最终线上稳定运行的整个项目部署发布流程,来帮助始终编程在一线的前端或者后端工程师,甚至是有 Coding 能力的产品经理,从操作流程和架构形态上,掌握从零开始的项目上线环节,掌握这关键一步,跨过去前端到后端,本地到线上,开发到生产...1-1 为什么是全栈最后一公里1-2 搭建线上生产环境需要做什么 第2章 待部署的 5 个本地 Nodejs 项目分别介绍五个技术架构和产品形态的项目背景,一个 Nodej

git 把本地创建的项目放到github上

很早之前就注册了Github,但对其使用一直懵懵懂懂,很不熟练.直到昨天做完百度前端技术学院的task,想把代码托管到Github上的时候发现自己对于Git的操作是如此之愚钝,所以今天决定把Git好好学习一遍,好让自己以后能更好地使用Github,主要还是通过Git教程 - 廖雪峰的官方网站来学习.简要步骤可以直接看最后的总结. Git的安装就不说了. 第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹). 你可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创

Netty简单应用与线上服务器部署_netty视频

Netty简单应用与线上服务器部署 课程学习地址:http://www.xuetuwuyou.com/course/198 课程出自学途无忧网:http://www.xuetuwuyou.com 一.开发环境 4.1.11.Final   jdk1.8 maven 3.2 Spring 4.3.9 二.适合人群 ①想深入学习java ClassLoader ②想在线上linux服务器上运行netty或Springboot服务 三.课程目标 ①掌控ClassLoader ②学会编写shell脚本

Myeclipse插件快速生成ssh项目并配置注解 在action层注入service的超详细过程

最近发现,我对于ssh的 自动注入配置 还是不熟悉,于是整理了一下 终于做了一个 简单的 注入配置出来. 以前都是在applicationContext.xml 里面这样配 <bean id="loginAction" class="com.dj.ssh.action.LoginAction" scope="prototype" autowire="byName"> <property name="