在Grails中记录错误的命令对象的最有效方法是什么?
我当前的日志只是,
if (!cmd.validate()) log.debug("command invalid ${cmd.errors}")
Run Code Online (Sandbox Code Playgroud)
但它只是喷出一个难以理解的输出混乱.
有人提出改进命令对象日志的建议吗?
我目前正在使用一个非常简单的MVC框架,即Bear Bibeault的Front Man,对于那些不熟悉的人来说,它与Spring MVC非常相似(至少在概念上).我遇到的一个问题是如何正确处理异常.
我目前正在做这样的事情,
try {
//do something
}catch (Exception ex) {
logger.error("Logging error", ex);
Map model = new HashMap();
model.put("error", ex.getLocalizedMessage());
cc.setScopedVariable("model", model);
cc.forwardToView(ERROR_VIEW);
}
Run Code Online (Sandbox Code Playgroud)
基本上我记录异常,然后转发到错误视图页面.
然而,这让我觉得不是正确的方法.它导致很多样板代码不是很干.
在Web应用程序中处理/记录异常的更好方法是什么?
java error-handling model-view-controller web-applications exception
我有以下html表单...
<html>
<head><title>Upload Servlet</title></head>
<body><h2>Upload Servlet</h2>
<form name='uploadparams' enctype='multipart/form-data' action='' method='post'>
<label>Migrate Options From:
<select name='migrateFrom'>
<option></option>
<option value='version 1'>version 1</option>
</select>
</label>
<br/>
<input type='file' name='zipFile'>
<br/>
<input type='hidden' value='willnotshowupinservlet'/>
<button type='submit'>Submit</button>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
问题是虽然我可以读取http参数名称为"zipFile"的文件,但我的servlet没有看到其他参数"willnotshowupinservlet"和"migrateFrom".文件上传表单只能有一个输入(文件输入)吗?
我需要一个正则表达式来混淆我拥有的数据库转储文件中的电子邮件.我想用一组域来替换所有域名,@fake.com所以我不冒险在开发过程中向真人发送电子邮件.电子邮件必须是唯一的,以匹配数据库约束,所以我只想替换域并保留用户名.
我目前有这个正则表达式来查找电子邮件
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
Run Code Online (Sandbox Code Playgroud)
如何将此搜索正则表达式转换为可以在Sublime Text或SED或Vim中的查找和替换操作中使用的正则表达式?
编辑:
只是一个注释,我刚刚意识到我可以替换@[A-Z0-9.-]+\.[A-Z]{2,4}\b在这种情况下发现的所有字符串,但在学术上我仍然对如何将电子邮件正则表达式的每个部分视为一个标记并独立替换用户名/域感兴趣.
我目前正在使用google api客户端gem与google api通信。它使用PKCS12对这些服务进行身份验证,并使用OpenSSL :: PKCS12.new
http://www.ruby-doc.org/stdlib-2.0/libdoc/openssl/rdoc/OpenSSL/PKCS12.html
但是,当我使用File.read读取文件并尝试传递字符串时,我得到String出现空字节错误。如何避免这种情况,并确保它仍然是PKCS12类的DER编码?
我使用任务并行库,我需要同步访问方法,但由于任务不一定为异步操作创建线程,我不能依赖使用锁.
void Foo()
{
lock(SyncRoot)
{
// Do stuff...
}
}
Run Code Online (Sandbox Code Playgroud)
如果我想阻止多个任务同时调用Foo,我可以使用什么而不是锁定?我需要我的任务一个接一个地调用Foo.
我的系统上有很多与python相关的软件包,它们对应不同版本的python.
我认为最佳实践不应该保留这么多版本的python,但我必须这样做,因为对linux的依赖有点复杂.
那么在编写python时是否有关于如何保持干净的开发环境的建议?
我系统中与python相关的细节如下:
python
python python2.4 python2.6 python_bk_24
python2 python26 python2.6-config
[mirror@home project]$ rpm -qa | grep python
python-sqlite-1.1.7-1.2.1
python-setuptools-0.6c5-2.el5
python-pip-0.8-1.el5
dbus-python-0.70-9.el5_4
python-elementtree-1.2.6-5
python-iniparse-0.2.3-4.el5
rpm-python-4.4.2.3-9.el5
libselinux-python-1.33.4-5.7.el5
python-libs-2.4.3-46.el5_8.2
python-devel-2.4.3-46.el5_8.2
ipython-0.8.4-1.el5
audit-libs-python-1.7.7-6.el5_3.3
python-urlgrabber-3.1.0-5.el5
python26-2.6.8-1.el5
python-2.4.3-46.el5_8.2
python26-distribute-0.6.10-4.el5
python26-virtualenv-1.5.1-3.el5
python26-libs-2.6.8-1.el5
python26-devel-2.6.8-1.el5
python-virtualenv-1.7-1.el5
libxml2-python-2.6.26-2.1.15.el5_8.2
[mirror@home project]$ python -V
Python 2.4.3
Run Code Online (Sandbox Code Playgroud) python development-environment virtualenv production-environment