﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-ZeroLine-随笔分类-bug</title><link>http://www.blogjava.net/zeroline/category/47116.html</link><description>All things are difficult before they are easy.</description><language>zh-cn</language><lastBuildDate>Mon, 03 Jan 2011 14:19:03 GMT</lastBuildDate><pubDate>Mon, 03 Jan 2011 14:19:03 GMT</pubDate><ttl>60</ttl><item><title>java.lang.IllegalArgumentException: Resources cannot be null.</title><link>http://www.blogjava.net/zeroline/archive/2011/01/03/342224.html</link><dc:creator>zeroline</dc:creator><author>zeroline</author><pubDate>Mon, 03 Jan 2011 12:33:00 GMT</pubDate><guid>http://www.blogjava.net/zeroline/archive/2011/01/03/342224.html</guid><wfw:comment>http://www.blogjava.net/zeroline/comments/342224.html</wfw:comment><comments>http://www.blogjava.net/zeroline/archive/2011/01/03/342224.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zeroline/comments/commentRss/342224.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zeroline/services/trackbacks/342224.html</trackback:ping><description><![CDATA[java.lang.IllegalArgumentException: Resources cannot be null.<span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-family: Courier;"><br />
<pre>	org.apache.commons.validator.Validator.&lt;init&gt;(Validator.java:188)<br />
org.apache.struts.validator.Resources.initValidator(Resources.java:475)<br />
org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:104)<br />
org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:950)<br />
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:207)<br />
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)<br />
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)<br />
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)<br />
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)<br />
<br />
使用Struts1，自己动手验证表单数据时，出现了如上的这个错误&#8220;java.lang.IllegalArgumentException: Resources cannot be null.<span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-family: Courier;"><br />
<br />
</span></span></span>&#8221;。<br />
这是因为在某个需要验证的 form 里，没有对validate()方法进行复写。<br />
</pre>
<p><strong><br />
</strong><u></u></p>
</span></span></span>
<img src ="http://www.blogjava.net/zeroline/aggbug/342224.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zeroline/" target="_blank">zeroline</a> 2011-01-03 20:33 <a href="http://www.blogjava.net/zeroline/archive/2011/01/03/342224.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory</title><link>http://www.blogjava.net/zeroline/archive/2010/11/21/338622.html</link><dc:creator>zeroline</dc:creator><author>zeroline</author><pubDate>Sun, 21 Nov 2010 10:55:00 GMT</pubDate><guid>http://www.blogjava.net/zeroline/archive/2010/11/21/338622.html</guid><wfw:comment>http://www.blogjava.net/zeroline/comments/338622.html</wfw:comment><comments>http://www.blogjava.net/zeroline/archive/2010/11/21/338622.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zeroline/comments/commentRss/338622.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zeroline/services/trackbacks/338622.html</trackback:ping><description><![CDATA[<span style="font-family: Courier;">
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">问题描述：学习&nbsp;Hibernate持久化技术时，使用hibernate</span><span style="color: #000000;">-</span><span style="color: #000000;">annotations</span><span style="color: #000000;">-</span><span style="color: #000000;">3.4</span><span style="color: #000000;">.</span><span style="color: #000000;">0</span><span style="color: #000000;">.GA版本做实验，做好了程序和配置文件后，运行程序出现 </span><span style="color: #000000;">java.lang.IllegalAccessError:&nbsp;tried&nbsp;to&nbsp;access&nbsp;field&nbsp;org.slf4j.impl.StaticLoggerBinder.SINGLETON&nbsp;from&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;org.slf4j.LoggerFactory错误。<br />
<br />
问题原因：jar文件版本冲突<br />
<br />
类&nbsp;org.slf4j.impl.StaticLoggerBinder在slf4j</span><span style="color: #000000;">-</span><span style="color: #000000;">api&nbsp;中是类的公有静态变量:<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;StaticLoggerBinder&nbsp;SINGLETON&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;StaticLoggerBinder();<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">以上是在网络上找的答案，也有很多人试过的，但是我遇到这个问题时，使用的Hibernate是3.6的，这种方法不适合。<br />
后来我将&nbsp;hibernate</span><span style="color: #000000;">-</span><span style="color: #000000;">jpa</span><span style="color: #000000;">-</span><span style="color: #000000;">2.0</span><span style="color: #000000;">-</span><span style="color: #000000;">api</span><span style="color: #000000;">-</span><span style="color: #000000;">1.0</span><span style="color: #000000;">.</span><span style="color: #000000;">0</span><span style="color: #000000;">.Final.jar&nbsp;包也加了进来之后，程序就好了。具体原因还在纠结<img src="http://www.blogjava.net/Images/dot.gif" alt="" />.</span></div>
<br />
而在slf4j</span><span style="color: #000000;">-</span><span style="color: #000000;">log4j12（slf4j</span><span style="color: #000000;">-</span><span style="color: #000000;">nop.jar,&nbsp;slf4j</span><span style="color: #000000;">-</span><span style="color: #000000;">simple.jar,&nbsp;slf4j</span><span style="color: #000000;">-</span><span style="color: #000000;">log4j12.jar,&nbsp;slf4j</span><span style="color: #000000;">-</span><span style="color: #000000;">jdk14.jar&nbsp;or&nbsp;logback</span><span style="color: #000000;">-</span><span style="color: #000000;">classic.jar其中之一）中确是私有变量:<br />
</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;StaticLoggerBinder&nbsp;SINGLETON&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;StaticLoggerBinder();<br />
<br />
解决方案：</span><span style="color: #000000;">1</span><span style="color: #000000;">.修改slf的源代码，将这个变量有私有改为公有，再打包，问题可解决。<br />
<br />
&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">2</span><span style="color: #000000;">.在类路径先将slf4j</span><span style="color: #000000;">-</span><span style="color: #000000;">api.jar&nbsp;删除，再导入同版本的slf4j</span><span style="color: #000000;">-</span><span style="color: #000000;">api</span><span style="color: #000000;">-</span><span style="color: #000000;">1.5</span><span style="color: #000000;">.</span><span style="color: #000000;">6</span><span style="color: #000000;">.jar&nbsp;和slf4j</span><span style="color: #000000;">-</span><span style="color: #000000;">log4j12</span><span style="color: #000000;">-</span><span style="color: #000000;">1.5</span><span style="color: #000000;">.</span><span style="color: #000000;">6</span><span style="color: #000000;">.jar&nbsp;，问题可解决。</span></div>
我遇到这个问题时用的是Hibernate3.6，是将hibernate-jpa-2.0-api-1.0.0.Final.jar包加进去才解决了的。相同问题的朋友试试。
</span>
<img src ="http://www.blogjava.net/zeroline/aggbug/338622.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zeroline/" target="_blank">zeroline</a> 2010-11-21 18:55 <a href="http://www.blogjava.net/zeroline/archive/2010/11/21/338622.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>