配置部署weblogic。如果没有配置域的话就要重新配置。
1、 配置域:在安装目录找到,bea\wlserver_10.3\common\bin\
Windows 启动 config.cmd 进行配置域。 一路点下一步,配置好用户名密码即可。
Liunx 启动 config.sh 配置域。 步骤同上。
转载请注明来源:http://blog.csdn.net/yjflinchong/article/details/8494502
2、 首先将发布的TestProject.war发布tomcat\webapps目录下,启动tomcat运行后,在tomcat\webapps目录下将生成TestProject文件夹,停止运行tomcat后,删除tomcat\webapps\TestProject\WEB-INF\lib目录下的xml-apis-1.0.b2.jar, 再将TestProject文件夹复制到bea\user_projects\domains\base_domain\autodeploy 目录。
3、 改系统端口的话在bea\user_projects\domains\base_domain\config\config.xml文件中的添加<listen-port>80</listen-port>
位置如下:
<server>
<name>AdminServer</name>
<listen-port>80</listen-port>
<listen-address></listen-address>
</server>
4、 修改部署域下的startWebLogic.cmd文件。
Windows 修改
bea\user_projects\domains\base_domain\bin\startWebLogic.cmd 文件。
把set CLASSPATH= %SAVE_CLASSPATH% 替换为
set CLASSPATH=%DOMAIN_HOME%\autodeploy\TestProject\WEB-INF\lib\antlr-2.7.6.jar;%DOMAIN_HOME%\autodeploy\TestProject\WEB-INF\lib\hibernate-jpa-2.0-api-1.0.0.Final.jar;%SAVE_CLASSPATH%
Liunx修改bea\user_projects\domains\base_domain\bin\startWebLogic.sh文件
把CLASSPATH="${SAVE_CLASSPATH}" 替换为
CLASSPATH="${DOMAIN_HOME}\autodeploy\TestProject\WEB-INF\lib\antlr-2.7.6.jar;${DOMAIN_HOME}\autodeploy\TestProject\WEB-INF\lib\hibernate-jpa-2.0-api-1.0.0.Final.jar;${SAVE_CLASSPATH}"
5、 开放操作系统防火墙的8083端口和80端口,用具有root权限的账户登录操作系统,执行如下命令。
#开启80端口放行
/sbin/iptables-I INPUT -p tcp --dport 80 -j ACCEPT
#保存配置
/etc/rc.d/init.d/iptablessave
#重启防火墙服务
/etc/rc.d/init.d/iptables restart
查看端口是否已经开放
/etc/init.d/iptables status
6、 启动刚才配置的域。
找到目录bea\user_projects\domains\base_domain\bin\ 。
Windows 启动 startWebLogic.cmd
Liunx 启动startWebLogic.sh
Mysql分表大概有三种方法,我最推荐的是使用merge引擎
先建表:
mysql> CREATE TABLE t1 ( -> a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> message CHAR(20)) ENGINE=MyISAM; mysql> CREATE TABLE t2 ( -> a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> message CHAR(20)) ENGINE=MyISAM; mysql> INSERT INTO t1 (message) VALUES ('Testing'),('table'),('t1'); mysql> INSERT INTO t2 (message) VALUES ('Testing'),('table'),('t2'); mysql> CREATE TABLE total ( -> a INT NOT NULL AUTO_INCREMENT, -> message CHAR(20), INDEX(a)) -> ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;其中t1,t2是分表
total是t1,t2两个表所有的数据
查询的时候
select * from toal
表面上看和普通表一样,其实上这个查询进行Mysql分表查询,只是对于操作者透明而已
插入的话也是
insert into total(message)values('message');
会默认插入LAST表,也就是t2表
这种分表方法必须定期维护.....
定期新建表,痛苦
下一章我研究下Mysql集群
Extjs
Ext.BLANK_IMAGE_URL='../extsrc/resources/images/default/s.gif'; Ext.lib.Ajax.defaultPostHeader += ";charset=utf-8"; Ext.onReady(function(){ Ext.QuickTips.init(); //Ext.form.Field.prototype.msgTarget = 'side'; var globalURL = '../control/IndexMajor?act=showMajor'; // store var store = new Ext.data.Store({ proxy: new Ext.data.ScriptTagProxy({//注意后台必须使用callback参数进行包装 url: globalURL }), reader : new Ext.data.JsonReader({ totalProperty : 'totalCount', root : 'root' }, [{ name : 'majorId' }, { name : 'majorName' }, { name : 'majorCode' }, { name : 'majorUseFlag' } ]) //sortInfo:{field:'majorId', direction:'ASC'} }); // start limit store.load(); // cm var cm = new Ext.grid.ColumnModel([{ id:'majorId', header: "专业序号", width:200, dataIndex: 'majorId' },{ id:'majorName', header: "专业名称", width:200, dataIndex: 'majorName' // ,renderer:sourceRenderer },{ id:'majorCode', header: "专业编码", width:200, dataIndex: 'majorCode' // ,renderer:targetRenderer },{ id:'majorUseFlag', header: "使用标志", width:100, dataIndex: 'majorUseFlag' // ,renderer:exectimeRenderer } ]); cm.defaultSortable = true; var newrecord = Ext.data.Record.create([ { name:'majorId', type:'string' }, { name : 'majorName', type : 'string' }, { name : 'majorCode', type : 'string' },{ name : 'majorUseFlag', type : 'string' },{ name : 'flag', type : 'string' } ]); function doadd(){ var newrrecord = new newrecord({ majorId:'', majorName : '', majorCode : '', majorUseFlag:'', flag: '1' }) grid.stopEditing(); store.insert(0, newrrecord); } function dosave() { var m = grid.store.getModifiedRecords(); var jsonData = '['; for (var i = 0; i < m.length; i++) { // m表示被修改的行 if(m[i].get('majorId')==''){ Ext.Msg.alert('信息提示', '专业序号不能为空!'); return false; } if(m[i].get('majorName')==''){ Ext.Msg.alert('信息提示', '专业名称不能为空!'); return false; } if(m[i].get('majorCode')==''){ Ext.Msg.alert('信息提示', '专业编码不能为空!'); return false; } if(m[i].get('majorUseFlag')==''){ Ext.Msg.alert('信息提示', '使用标志不能为空!'); return false; } var n=store.getCount(); jsonData = jsonData + Ext.util.JSON.encode(m[i].data) + ','; } jsonData += ']'; if (jsonData == '[]') { Ext.Msg.alert('信息提示', '没有发现保存项,请确认有保存项!'); return false; } Ext.Msg.confirm('信息', '确定要保存所选项吗?', function(btn) { if (btn == 'yes') { Ext.MessageBox.wait("正在保存", "请稍候..."); Ext.Ajax.request({ url : '../control/IndexMajor?act=saveMajor', params : { jsonData : jsonData }, method: 'POST', success: function (request ) { var message = request.responseText; var resp=Ext.util.JSON.decode(request.responseText); if(resp.success == 'fail'){ Ext.Msg.alert('信息','<center>保存项保存失败!<p>'+ resp.Info+'</center>'); } else{ Ext.Msg.alert('信息','保存项保存成功!'); store.each(function(record) { record.commit(); }) loadF = 0; selectedrecord = null; grid.getView().refresh(); saved=true; store.reload(); renderGrid(); } }, failure: function ( result, request) { Ext.Msg.alert('错误','保存时出现未知错误.'); } }); } }) } function dodelete(){ Ext.MessageBox.confirm('确认删除', '你真的要删除所选行记录吗?', function(btn) { if (btn == 'yes') { Ext.MessageBox.wait("正在删除", "请稍候..."); var m = grid.getSelections(); var majorIds=''; for(var i=0;i<m.length-1;i+=1){ majorIds+=m[i].get('majorId')+','; } pros+=m[m.length-1].get('protocol'); Ext.Ajax.request({ url : '../control/IndexMajor?act=deleteMajor', params : { majorIds : majorIds }, method: 'POST', success: function (request ) { var resp=Ext.util.JSON.decode(request.responseText); if(resp.success == 'fail'){ Ext.Msg.alert('信息','<center>记录删除失败!<p>'+ resp.Info+'</center>'); } else{ Ext.Msg.alert('提示', '记录删除成功!'); store.reload(); grid.getView().refresh(); store.commitChanges(); } }, failure: function ( result, request) { Ext.Msg.alert('错误','删除时出现未知错误.'); } }); } }) } // tbar var tbar= [ {text:'查询',width:100,iconCls:'search',handler : dosearch},' ','-', {text:'新增',width:100,iconCls:'user_add',handler : doadd},' ','-', {text:'保存',width:100,iconCls:'save',handler : dosave},' ','-', {text:'删除',width:100,iconCls:'user_delete',handler : dodelete} ]; // bbar var bbar = new Ext.PagingToolbar({ pageSize : 30, store : store, displayInfo : true, displayMsg : '共有 {2} 条记录.当前显示 {0} - {1}条记录.', emptyMsg : "没有数据" }); store.load({params : {start : 0,limit : 30}}); function renderGrid() { store.load({ params : { start : 0, limit : 30 } }); } // grid var grid = new Ext.grid.EditorGridPanel({ id:'grid', store: store, cm: cm, height:Ext.getBody().getComputedHeight()-20, //title:'任务管理', frame:true, // plugins:checkColumn, clicksToEdit:1, sm: new Ext.grid.RowSelectionModel({singleSelect:false}), bbar: bbar, tbar: tbar, renderer:renderGrid() }); // viewport var viewport = new Ext.Viewport({ // region:'center', layout:'fit', split:true, collapsible: true, margins:'0 0 20 0', frame:true, items:[{autoScroll:false,items:[grid]}] }); function dosearch() { store.load({ params : { start : 0, limit : 30 } }); grid.reconfigure(store, cm); grid.getBottomToolbar().render();// 重新渲染询问工具栏 grid.view.startCollapsed = false; } });
handler
package com.econ.assessment; import java.net.URLDecoder; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.json.JSONArray; import org.json.JSONObject; import com.econ.assessment.bean.IndexdbConstants; import com.econ.control.AbstractHandler; import com.econ.control.BaseWebKeys; /** * 专业major管理 * @creator BEN by 2013.1.4 * @author JBL * */ public class IndexMajorHandler extends AbstractHandler{ private String userAcct; //当前登录用户账号 private String userGrpId; //当前登录用户所属用户组Id /** * @param args */ private IndexMajorDAO madao=new IndexMajorDAO(); @Override public String process(HttpServletRequest request, ActionForm form, HttpServletResponse response) { // TODO Auto-generated method stub userAcct = request.getSession().getAttribute( BaseWebKeys.SAK_SYS_USR_ACCT).toString(); userGrpId = request.getSession().getAttribute( BaseWebKeys.SAK_SYS_USR_GRP_ID).toString(); String result = "IndexMajorShow"; String action = request.getParameter("act"); if("showMajor".equals(action))//显示专业 result = showMajor(request,response); if("createMajor".equals(action))//创建专业 result = createMajor(request,response); if("editMajor".equals(action))//修改专业 result = editMajor(request,response); if("deleteMajor".equals(action))//删除专业 result = deleteMajor(request,response); if("expireMajor".equals(action))//专业过期 result = expireMajor(request,response); if("saveMajor".equals(action))//保存修改 result = saveMajor(request,response); return result; } /** * 查询展示 * @param request * @param response * @return */ public String showMajor(HttpServletRequest request,HttpServletResponse response){ String jsonStr = null; String startStr = request.getParameter("start"); String limitStr = request.getParameter("limit"); String majorId = (request.getParameter("searchMajorId")!= null? request.getParameter("searchMajorId"):""); String majorName = this.getRequestIsNull(request, "searchMajorName","utf-8"); String majorCode = (request.getParameter("searchMajorCode")!= null? request.getParameter("searchMajorCode"):""); String majorUseFlag = (request.getParameter("searchMajorUseFlag&quo