關於在在struts中寫Regex遇到java.lang.NoClassDefFoundError: org/apache/oro/text/perl/Perl5Util的解決辦法

來源:互聯網
上載者:User

做完在經過千萬次失敗以後終於寫好了一個完整的struts的小例子來驗證一下自己對struts到底理解了多少,

對於“form”和“from”寫錯,這個白癡的錯誤讓我整整忙活了一下午,

最後還是在別人的協助下才找到這個“搗蛋鬼”,

在咒罵自己白癡的同時,不得不讓人有點討厭JAVA的IDE的智能程度,

嗚~~~你好歹報個錯啊.........

 

額,靈驗了,解決了“form”誤寫為“from”的錯誤以後,

程式總算開始正常運行了,因為它開始報錯了,

心裡那個高興啊(是不是很BT,但是如果你嘗試了JAVA-IDE死活不報錯,而你就逐行逐行代碼找錯誤的時候,你會發現它報告錯誤是那麼的爽........)

 

先提前介紹一下這個demo實現的功能,

用struts建立一個驗證使用者名稱和密碼的功能,使用者名稱和密碼只能為數字和字母的組合,而且至少6位以上。

具體的操作步驟在這次不詳細敘述了,網上這個驗證架構的文章的很多,大家參考以後就可以搞定,

我這裡只說可能出現問題的解決辦法。

在寫完代碼以後,運行,測試,出現一下異常:

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

這裡異常提示缺少類的定義:org/apache/oro/text/perl/Perl5Util

而這個類存在與jakarta-oro.jar包,這個包一般內建的IDE是沒有整合,

大家下載後copy到自己項目的lib中重新編譯運行即可,

附上jakarta-oro.jar的:

點擊轉到

 

我將執行個體工程代碼發布了出來,喜歡自己看下:

點擊轉到

 

有問題大家可以一起討論。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.