BAE 环境下配置 struts2 + spring + hibernate(SSH)(三)spring&hibernate
1.在lib中加入必要的包,导入后结果如下:
lib打包下载:SSH-lib.jar (struts2.3.1.2 spring3.0.5 hibernate3.6.10.Final)
只包含必要的包 有其他需求另外加入
2.上传所有的java文件到 src 目录
3.把 applicationContext.xml hibernate.cfg.xml 和 POJO映射文件(XXX.hbm.xml)都放到 src 目录下。
4.修改 applicationContext.xml 和 hibernate.cfg.xml 中的数据库配置部分
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://sqld.duapp.com:4050/dbname jdbc.username=ak jdbc.password=sk
数据库的地址是sqld.duapp.com,端口是4050,dbname是在应用管理的“云环境管理 > 服务管理 -> MySQL(数据库)”中创建的数据库名称,用户名为应用的API Key,密码为Secret Key。
5.修改 所有使用到数据库名的地方
例如:POJO映射文件(XXX.hbm.xml)中
<class name="bean.XXX" table="XXX" catalog="llXXxMuiXhSwIXFSiXxk">
中catalog的值都要改成 BAE指定的数据库名,不然的话会发生 异常 org.hibernate.exception.SQLGrammarException: could not execute query
6.修改 web.xml ,加入spring:
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter>
contextConfigLocation 是用来设置 applicationContext.xml 的位置的用设置的话 服务器启动时会找 /WEB_INF/applicationContext.xml 的文件,启动后会找 classes目录下的applicationContext.xml。
注意:在项目代码中的 /WEB_INF/classes 目录下放任何东西都是没有用的 BAE 会把src目录下的文件编译后复制到 真正的应用运行的目录里。
7.配置 duapp-web.xml :
<?xml version="1.0" encoding="utf-8"?> <du-web-app xmlns="http://bae.baidu.com/java/1.0"> <sessions-enabled>true</sessions-enabled> <static-files> <include path="/**.html" expiration ="access 1 months" /> </static-files> </du-web-app>
其中
<sessions-enabled>true</sessions-enabled>
用来启动分布式Session,不做这个设置的话默认是禁用Session功能的,一旦使用Session就会报错。