配置部署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