使用Axis提供兩個簡單的webservice功能,供flash同事測試注冊和登錄
public class UserServiceImpl extends ServiceImpl implements UserService {
private UserDao userDao;
public UserServiceImpl() {
super();
userDao = new UserDaoImpl();
log = LogFactory.getLog(UserServiceImpl.class);
}
public int operate_reg(String userName, String userPass, int userFace) {
// TODO Auto-generated method stub
try {
List sqlfilter = new LinkedList();
sqlfilter.add(new SqlCondition("and", "t.login_id", "=", userName, SqlCondition.STRING));
int state = (int) userDao.getUserCount(sqlfilter);
if(state > 0) return 2;
User user = new User();
user.setLoginId(userName);
user.setPass(MD5Security.str2MD5to16byte(userPass));
user.setFaceid(new Integer(userFace));
final User tmp = user;
return ((Integer) super.getTransactionUtils().execute(new TransactionCallback() {
public Object doInTransaction(TransactionStatus status) {
return new Integer(userDao.addUser(tmp));
}
})).intValue();
} catch(Exception ex) {
ex.printStackTrace();
log.error(ex);
}
return -1;
}
public int operate_login(String userName,String userPass) {
try {
List sqlfilter = new LinkedList();
sqlfilter.add(new SqlCondition("and", "t.login_id", "=", userName, SqlCondition.STRING));
sqlfilter.add(new SqlCondition("and", "t.pass", "=", MD5Security.str2MD5to16byte(userPass),SqlCondition.STRING));
Collection coll = userDao.getUser(sqlfilter, 1, 1);
if(coll.size() == 0) return 0;
User u = coll.iterator().next();
return u.getFaceid() + 10;
} catch(Exception ex) {
ex.printStackTrace();
log.error(ex);
}
return -1;
}
}
server-config.wsdd 配置:private UserDao userDao;
public UserServiceImpl() {
super();
userDao = new UserDaoImpl();
log = LogFactory.getLog(UserServiceImpl.class);
}
public int operate_reg(String userName, String userPass, int userFace) {
// TODO Auto-generated method stub
try {
List sqlfilter = new LinkedList();
sqlfilter.add(new SqlCondition("and", "t.login_id", "=", userName, SqlCondition.STRING));
int state = (int) userDao.getUserCount(sqlfilter);
if(state > 0) return 2;
User user = new User();
user.setLoginId(userName);
user.setPass(MD5Security.str2MD5to16byte(userPass));
user.setFaceid(new Integer(userFace));
final User tmp = user;
return ((Integer) super.getTransactionUtils().execute(new TransactionCallback() {
public Object doInTransaction(TransactionStatus status) {
return new Integer(userDao.addUser(tmp));
}
})).intValue();
} catch(Exception ex) {
ex.printStackTrace();
log.error(ex);
}
return -1;
}
public int operate_login(String userName,String userPass) {
try {
List sqlfilter = new LinkedList();
sqlfilter.add(new SqlCondition("and", "t.login_id", "=", userName, SqlCondition.STRING));
sqlfilter.add(new SqlCondition("and", "t.pass", "=", MD5Security.str2MD5to16byte(userPass),SqlCondition.STRING));
Collection coll = userDao.getUser(sqlfilter, 1, 1);
if(coll.size() == 0) return 0;
User u = coll.iterator().next();
return u.getFaceid() + 10;
} catch(Exception ex) {
ex.printStackTrace();
log.error(ex);
}
return -1;
}
}
經測試,可以成功讀寫db.. ok,
這兩天要提供一個功能,只允許登錄一次,因為流量鋒值可達 2w/min ,
功能是簡單,但性能要求這麼高....怎麼算好..?? help..




















