您的位置:首页 > 运维架构 > Apache

关于在在struts中写正则表达式遇到java.lang.NoClassDefFoundError: org/apache/oro/text/perl/Perl5Util的解决办法

2009-03-11 10:05 573 查看
做完在经过千万次失败以后终于写好了一个完整的struts的小例子来验证一下自己对struts到底理解了多少,

对于“form”和“from”写错,这个白痴的错误让我整整忙活了一下午,

最后还是在别人的帮助下才找到这个“捣蛋鬼”,

在咒骂自己白痴的同时,不得不让人有点讨厌JAVA的IDE的智能程度,

呜~~~你好歹报个错啊.........

额,灵验了,解决了“form”误写为“from”的错误以后,

程序总算开始正常运行了,因为它开始报错了,

心里那个高兴啊(是不是很BT,但是如果你尝试了JAVA-IDE死活不报错,而你就逐行逐行代码找错误的时候,你会发现它报告错误是那么的爽........)

先提前介绍一下这个demo实现的功能,

用struts建立一个验证用户名和密码的功能,用户名和密码只能为数字和字母的组合,而且至少6位以上。

具体的操作步骤在这次不详细叙述了,网上这个验证框架的文章的很多,大家参考以后就可以搞定,

我这里只说可能出现问题的解决办法。

在写完代码以后,运行,测试,出现一下异常:

java.lang.NoClassDefFoundError: org/apache/oro/text/perl/Perl5Util
org.apache.commons.validator.GenericValidator.matchRegexp(GenericValidator.java:65)
org.apache.struts.validator.FieldChecks.validateMask(FieldChecks.java:233)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java:544)
org.apache.commons.validator.Field.validateForRule(Field.java:796)
org.apache.commons.validator.Field.validate(Field.java:876)
org.apache.commons.validator.Form.validate(Form.java:288)
org.apache.commons.validator.Validator.validate(Validator.java:351)
org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:116)
org.apache.struts.chain.commands.servlet.ValidateActionForm.validate(ValidateActionForm.java:58)
org.apache.struts.chain.commands.AbstractValidateActionForm.execute(AbstractValidateActionForm.java:120)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


这里异常提示缺少类的定义:org/apache/oro/text/perl/Perl5Util

而这个类存在与jakarta-oro.jar包,这个包一般自带的IDE是没有集成,

大家下载后copy到自己项目的lib中重新编译运行即可,

附上jakarta-oro.jar的下载地址:

点击转到下载地址

我将实例工程代码发布了出来,喜欢自己看下:

点击转到下载地址

有问题大家可以一起讨论。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐