﻿<?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-Enjoy yourself,and don't care about others' thinking!-随笔分类-WebWork</title><link>http://www.blogjava.net/TiGERTiAN/category/21533.html</link><description>----TiGERTiAN</description><language>zh-cn</language><lastBuildDate>Sun, 14 Oct 2007 14:30:19 GMT</lastBuildDate><pubDate>Sun, 14 Oct 2007 14:30:19 GMT</pubDate><ttl>60</ttl><item><title>hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法</title><link>http://www.blogjava.net/TiGERTiAN/archive/2007/10/14/152752.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Sun, 14 Oct 2007 08:55:00 GMT</pubDate><guid>http://www.blogjava.net/TiGERTiAN/archive/2007/10/14/152752.html</guid><wfw:comment>http://www.blogjava.net/TiGERTiAN/comments/152752.html</wfw:comment><comments>http://www.blogjava.net/TiGERTiAN/archive/2007/10/14/152752.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TiGERTiAN/comments/commentRss/152752.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TiGERTiAN/services/trackbacks/152752.html</trackback:ping><description><![CDATA[<p>今天写webwork+spring+hibernate的时候碰到了这个问题</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">java.lang.NullPointerException<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />at&nbsp;org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:</span><span style="color: #000000">372</span><span style="color: #000000">)</span></div>
这个问题出得很莫名其妙，我在用find方法找数据的时候，如果数据库中不存在这条记录，那么代码一切正常，但如果存在相应记录就会抛出上面的异常，搜了一圈，首先在国外的网站上找到一个方法<br />
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1365?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel<br />
主要说的是问题出在CGLib上面，修正一下就可以了，下载中也给出了patch，我没有试过，<br />
我看到了最后一条评论，直接更新CGlib到2.2beta就可以了。我试了一下，问题解决了。<br />
在搜索过程中，JavaEye有个帖子也提到了这个问题，解决办法除了上面那个，还有人说可以<br />
设置相关表的lazy="false"解决问题，我没有尝试过，大家可以看看，各取所需。<br />
<img src ="http://www.blogjava.net/TiGERTiAN/aggbug/152752.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2007-10-14 16:55 <a href="http://www.blogjava.net/TiGERTiAN/archive/2007/10/14/152752.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jsp中的大祸根</title><link>http://www.blogjava.net/TiGERTiAN/archive/2007/10/13/152621.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Sat, 13 Oct 2007 11:32:00 GMT</pubDate><guid>http://www.blogjava.net/TiGERTiAN/archive/2007/10/13/152621.html</guid><wfw:comment>http://www.blogjava.net/TiGERTiAN/comments/152621.html</wfw:comment><comments>http://www.blogjava.net/TiGERTiAN/archive/2007/10/13/152621.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TiGERTiAN/comments/commentRss/152621.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TiGERTiAN/services/trackbacks/152621.html</trackback:ping><description><![CDATA[&nbsp;&lt;base href="&lt;%=basePath%&gt;"&gt;<br />
<br />
这句话大家很常见了，但是如果不注意的话，这句话会成为Java Web的梦魇，我今天在做Webwork的时候，怎么都有问题，无法提交到指定页面，只会刷新当前表单页面，找了很久，才想起来这句话指示了base，所以无论你是提交表单还是webwork内部的转向，都会出错，有的时候提示找不到地址，有的时候压根不提示。并且页面显示也会出现问题。大家以后要注意了。 <br />
这句话主要就是痿了让我们在写路径的时候统一一下，方便迁移。
<img src ="http://www.blogjava.net/TiGERTiAN/aggbug/152621.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2007-10-13 19:32 <a href="http://www.blogjava.net/TiGERTiAN/archive/2007/10/13/152621.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WebWork中的模型驱动问题注意</title><link>http://www.blogjava.net/TiGERTiAN/archive/2007/04/11/109973.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Wed, 11 Apr 2007 10:30:00 GMT</pubDate><guid>http://www.blogjava.net/TiGERTiAN/archive/2007/04/11/109973.html</guid><wfw:comment>http://www.blogjava.net/TiGERTiAN/comments/109973.html</wfw:comment><comments>http://www.blogjava.net/TiGERTiAN/archive/2007/04/11/109973.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TiGERTiAN/comments/commentRss/109973.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TiGERTiAN/services/trackbacks/109973.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Example&nbsp;1:&nbsp;This&nbsp;is&nbsp;wrong:</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_91_273_Open_Image onclick="this.style.display='none'; Codehighlighter1_91_273_Open_Text.style.display='none'; Codehighlighter1_91_273_Closed_Image.style.display='inline'; Codehighlighter1_91_273_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_91_273_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_91_273_Closed_Text.style.display='none'; Codehighlighter1_91_273_Open_Image.style.display='inline'; Codehighlighter1_91_273_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;ViewHeadlineAction&nbsp;</span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000">&nbsp;Action,&nbsp;ModelDriven&nbsp;</span><span id=Codehighlighter1_91_273_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_91_273_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>Headline&nbsp;headline&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Headline();<br><img id=Codehighlighter1_154_179_Open_Image onclick="this.style.display='none'; Codehighlighter1_154_179_Open_Text.style.display='none'; Codehighlighter1_154_179_Closed_Image.style.display='inline'; Codehighlighter1_154_179_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_154_179_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_154_179_Closed_Text.style.display='none'; Codehighlighter1_154_179_Open_Image.style.display='inline'; Codehighlighter1_154_179_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;Object&nbsp;getModel()&nbsp;</span><span id=Codehighlighter1_154_179_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_154_179_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.headline&nbsp;;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"></span><span style="COLOR: #008000"><br><img id=Codehighlighter1_212_271_Open_Image onclick="this.style.display='none'; Codehighlighter1_212_271_Open_Text.style.display='none'; Codehighlighter1_212_271_Closed_Image.style.display='inline'; Codehighlighter1_212_271_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_212_271_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_212_271_Closed_Text.style.display='none'; Codehighlighter1_212_271_Open_Image.style.display='inline'; Codehighlighter1_212_271_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;String&nbsp;execute()&nbsp;</span><span id=Codehighlighter1_212_271_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_212_271_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>headline&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;headlineFactory.findLatest();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;SUCCESS;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>b</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Example&nbsp;2:&nbsp;This&nbsp;is&nbsp;correct:</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_369_552_Open_Image onclick="this.style.display='none'; Codehighlighter1_369_552_Open_Text.style.display='none'; Codehighlighter1_369_552_Closed_Image.style.display='inline'; Codehighlighter1_369_552_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_369_552_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_369_552_Closed_Text.style.display='none'; Codehighlighter1_369_552_Open_Image.style.display='inline'; Codehighlighter1_369_552_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;ViewHeadlineAction&nbsp;</span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000">&nbsp;Action,&nbsp;ModelDriven&nbsp;</span><span id=Codehighlighter1_369_552_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_369_552_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>Headline&nbsp;headline&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Headline();<br><img id=Codehighlighter1_432_457_Open_Image onclick="this.style.display='none'; Codehighlighter1_432_457_Open_Text.style.display='none'; Codehighlighter1_432_457_Closed_Image.style.display='inline'; Codehighlighter1_432_457_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_432_457_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_432_457_Closed_Text.style.display='none'; Codehighlighter1_432_457_Open_Image.style.display='inline'; Codehighlighter1_432_457_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;Object&nbsp;getModel()&nbsp;</span><span id=Codehighlighter1_432_457_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_432_457_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.headline&nbsp;;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"></span><span style="COLOR: #008000"><br><img id=Codehighlighter1_490_550_Open_Image onclick="this.style.display='none'; Codehighlighter1_490_550_Open_Text.style.display='none'; Codehighlighter1_490_550_Closed_Image.style.display='inline'; Codehighlighter1_490_550_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_490_550_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_490_550_Closed_Text.style.display='none'; Codehighlighter1_490_550_Open_Image.style.display='inline'; Codehighlighter1_490_550_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;String&nbsp;execute()&nbsp;</span><span id=Codehighlighter1_490_550_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_490_550_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>headlineFactory.updateToLatest(headline);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;SUCCESS;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>Example 1 attempts to change the instance that getModel() returns. However,<br><span style="COLOR: red">because getModel() is called before execute()</span> and before the object is pushed<br>onto the value stack, the reference that WebWork uses is the original instance, created<br>by new Headline(), not the instance loaded from the HeadlineFactory. The<br>second example resolves this issue by updating the existing instance rather than<br>having headline point to a new instance.
<img src ="http://www.blogjava.net/TiGERTiAN/aggbug/109973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2007-04-11 18:30 <a href="http://www.blogjava.net/TiGERTiAN/archive/2007/04/11/109973.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>