<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>橘子红了</title>
    <description></description>
    <link>http://oranges.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title> Hibernate程序性能优化</title>
        <author>coredeo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://oranges.javaeye.com">coredeo</a>&nbsp;
          链接：<a href="http://oranges.javaeye.com/blog/218416" style="color:red;">http://oranges.javaeye.com/blog/218416</a>&nbsp;
          发表时间: 2008年07月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>初用HIBERNATE的人也许都遇到过性能问题，实现同一功能，用HIBERNATE与用JDBC性能相差十几倍很正常，如果不及早调整，很可能影响整个项目的进度。</p>
<p>　　大体上，对于HIBERNATE性能调优的主要考虑点如下:</p>
<p>　　&Oslash; 数据库设计调整</p>
<p>　　&Oslash; HQL优化</p>
<p>　　&Oslash; API的正确使用(如根据不同的业务类型选用不同的集合及查询API)</p>
<p>　　&Oslash; 主配置参数(日志，查询缓存，fetch_size, batch_size等)</p>
<p>　　&Oslash; 映射文件优化(ID生成策略，二级缓存，延迟加载，关联优化)</p>
<p>　　&Oslash; 一级缓存的管理</p>
<p>　　&Oslash; 针对二级缓存，还有许多特有的策略</p>
<p>　　&Oslash; 事务控制策略。</p>
<p><strong>　　1、 数据库设计</strong></p>
<p>　　a) 降低关联的复杂性</p>
<p>　　b) 尽量不使用联合主键</p>
<p>　　c) ID的生成机制，不同的数据库所提供的机制并不完全一样</p>
<p>　　d) 适当的冗余数据，不过分追求高范式</p>
<p><strong>　　2、 HQL优化</strong></p>
<p>　　HQL如果抛开它同HIBERNATE本身一些缓存机制的关联，HQL的优化技巧同普通的SQL优化技巧一样，可以很容易在网上找到一些经验之谈。</p>
<p><strong>　　3、 主配置</strong></p>
<p>　　a) 查询缓存，同下面讲的缓存不太一样，它是针对HQL语句的缓存，即完全一样的语句再次执行时可以利用缓存数据。但是，查询缓存在一个交易系统(数据变更频繁，查询条件相同的机率并不大)中可能会起反作用:它会白白耗费大量的系统资源但却难以派上用场。</p>
<p>　　b) fetch_size，同JDBC的相关参数作用类似，参数并不是越大越好，而应根据业务特征去设置</p>
<p>　　c) batch_size同上。</p>
<p>　　d) 生产系统中，切记要关掉SQL语句打印。</p>
<p><strong>　　4、 缓存</strong></p>
<p>　　a) 数据库级缓存:这级缓存是最高效和安全的，但不同的数据库可管理的层次并不一样，比如，在ORACLE中，可以在建表时指定将整个表置于缓存当中。</p>
<p>　　b) SESSION缓存:在一个HIBERNATE SESSION有效，这级缓存的可干预性不强，大多于HIBERNATE自动管理，但它提供清除缓存的方法，这在大批量增加/更新操作是有效的。比如，同时增加十万条记录，按常规方式进行，很可能会发现OutofMemeroy的异常，这时可能需要手动清除这一级缓存:Session.evict以及 Session.clear</p>
<p>　　c) 应用缓存:在一个SESSIONFACTORY中有效，因此也是优化的重中之重，因此，各类策略也考虑的较多，在将数据放入这一级缓存之前，需要考虑一些前提条件:</p>
<p>　　i. 数据不会被第三方修改(比如，是否有另一个应用也在修改这些数据?)</p>
<p>　　ii. 数据不会太大</p>
<p>　　iii. 数据不会频繁更新(否则使用CACHE可能适得其反)</p>
<p>　　iv. 数据会被频繁查询</p>
<p>　　v. 数据不是关键数据(如涉及钱，安全等方面的问题)。</p>
<p>　　缓存有几种形式，可以在映射文件中配置:read-only(只读，适用于很少变更的静态数据/历史数据)，nonstrict-read- write，read-write(比较普遍的形式，效率一般)，transactional(JTA中，且支持的缓存产品较少)</p>
<p>　　d) 分布式缓存:同c)的配置一样，只是缓存产品的选用不同，在目前的HIBERNATE中可供选择的不多，oscache, jboss cache，目前的大多数项目，对它们的用于集群的使用(特别是关键交易系统)都持保守态度。在集群环境中，只利用数据库级的缓存是最安全的。</p>
<p><strong>　　5、 延迟加载</strong></p>
<p>　　a) 实体延迟加载:通过使用动态代理实现</p>
<p>　　b) 集合延迟加载:通过实现自有的SET/LIST，HIBERNATE提供了这方面的支持</p>
<p>　　c) 属性延迟加载:</p>
<p><strong>　　6、 方法选用</strong></p>
<p>　　a) 完成同样一件事，HIBERNATE提供了可供选择的一些方式，但具体使用什么方式，可能用性能/代码都会有影响。显示，一次返回十万条记录 (List/Set/Bag/Map等)进行处理，很可能导致内存不够的问题，而如果用基于游标(ScrollableResults)或 Iterator的结果集，则不存在这样的问题。</p>
<p>　　b) Session的load/get方法，前者会使用二级缓存，而后者则不使用。</p>
<p>　　c) Query和list/iterator，如果去仔细研究一下它们，你可能会发现很多有意思的情况，二者主要区别(如果使用了Spring，在HibernateTemplate中对应find,iterator方法):</p>
<p>　　i. list只能利用查询缓存(但在交易系统中查询缓存作用不大)，无法利用二级缓存中的单个实体，但list查出的对象会写入二级缓存，但它一般只生成较少的执行SQL语句，很多情况就是一条(无关联)。</p>
<p>　　ii. iterator则可以利用二级缓存，对于一条查询语句，它会先从数据库中找出所有符合条件的记录的ID，再通过ID去缓存找，对于缓存中没有的记录，再构造语句从数据库中查出，因此很容易知道，如果缓存中没有任何符合条件的记录，使用iterator会产生N+1条SQL语句(N为符合条件的记录数)</p>
<p>　　iii. 通过iterator，配合缓存管理API，在海量数据查询中可以很好的解决内存问题，如:</p>
<p>　　while(it.hasNext()){</p>
<p>　　YouObject object = (YouObject)it.next();</p>
<p>　　session.evict(youObject);</p>
<p>　　sessionFactory.evice(YouObject.class, youObject.getId());</p>
<p>　　}</p>
<p>　　如果用list方法，很可能就出OutofMemory错误了。</p>
<p>　　iv. 通过上面的说明，我想你应该知道如何去使用这两个方法了。</p>
<p><strong>　　7、 集合的选用</strong></p>
<p>　　在HIBERNATE 3.1文档的&ldquo;19.5. Understanding Collection performance&rdquo;中有详细的说明。</p>
<p><strong>　　8、 事务控制</strong></p>
<p>　　事务方面对性能有影响的主要包括:事务方式的选用，事务隔离级别以及锁的选用</p>
<p>　　a) 事务方式选用:如果不涉及多个事务管理器事务的话，不需要使用JTA，只有JDBC的事务控制就可以。</p>
<p>　　b) 事务隔离级别:参见标准的SQL事务隔离级别</p>
<p>　　c) 锁的选用:悲观锁(一般由具体的事务管理器实现)，对于长事务效率低，但安全。乐观锁(一般在应用级别实现)，如在HIBERNATE中可以定义 VERSION字段，显然，如果有多个应用操作数据，且这些应用不是用同一种乐观锁机制，则乐观锁会失效。因此，针对不同的数据应有不同的策略，同前面许多情况一样，很多时候我们是在效率与安全/准确性上找一个平衡点，无论如何，优化都不是一个纯技术的问题，你应该对你的应用和业务特征有足够的了解。</p>
<p><strong>　　9、 批量操作</strong></p>
<p>　　即使是使用JDBC，在进行大批数据更新时，BATCH与不使用BATCH有效率上也有很大的差别。我们可以通过设置batch_size来让其支持批量操作。</p>
<p>　　举个例子，要批量删除某表中的对象，如&ldquo;delete Account&rdquo;，打出来的语句，会发现HIBERNATE找出了所有ACCOUNT的ID，再进行删除，这主要是为了维护二级缓存，这样效率肯定高不了，在后续的版本中增加了bulk delete/update，但这也无法解决缓存的维护问题。也就是说，由于有了二级缓存的维护问题，HIBERNATE的批量操作效率并不尽如人意!</p>
<p>　　从前面许多要点可以看出，很多时候我们是在效率与安全/准确性上找一个平衡点，无论如何，优化都不是一个纯技术的问题，你应该对你的应用和业务特征有足够的了解，一般的，优化方案应在架构设计期就基本确定，否则可能导致没必要的返工，致使项目延期，而作为架构师和项目经理，还要面对开发人员可能的抱怨，必竟，我们对用户需求更改的控制力不大，但技术/架构风险是应该在初期意识到并制定好相关的对策。</p>
<p>　　还有一点要注意，应用层的缓存只是锦上添花，永远不要把它当救命稻草，应用的根基(数据库设计，算法，高效的操作语句，恰当API的选择等)才是最重要的。</p>
          <br/>
          <span style="color:red;">
            <a href="http://oranges.javaeye.com/blog/218416#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 22 Jul 2008 23:17:58 +0800</pubDate>
        <link>http://oranges.javaeye.com/blog/218416</link>
        <guid>http://oranges.javaeye.com/blog/218416</guid>
      </item>
      <item>
        <title>BeanUtils.copyProperties 与 PropertyUtils.copyPrope</title>
        <author>coredeo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://oranges.javaeye.com">coredeo</a>&nbsp;
          链接：<a href="http://oranges.javaeye.com/blog/188067" style="color:red;">http://oranges.javaeye.com/blog/188067</a>&nbsp;
          发表时间: 2008年04月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>一、简介：BeanUtils提供对 Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道，一个JavaBean通常包含了大量的属性，很多情况下，对JavaBean的处理导致大量get/set代码堆积，增加了代码长度和阅读代码的难度。</p>
<p>二、用法：BeanUtils是这个包里比较常用的一个工具类，这里只介绍它的copyProperties()方法。</p>
<p>该方法定义如下：</p>
<p>public static void copyProperties(java.lang.Object dest,java.lang.Object orig)&nbsp; throws java.lang.IllegalAccessException,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.lang.reflect.InvocationTargetException</p>
<p>如果你有两个具有很多相同属性的JavaBean，一个很常见的情况就是Struts里的PO对象（持久对象）和对应的ActionForm，</p>
<p>例如 Teacher和TeacherForm。我们一般会在Action里从ActionForm构造一个PO对象，传统的方式是使用类似下面的语句对属性逐个赋值：</p>
<p>//得到TeacherFormTeacherForm teacherForm=(TeacherForm)form;</p>
<p>//构造Teacher对象Teacher teacher=new Teacher();</p>
<p>//赋值teacher.setName(teacherForm.getName());</p>
<p>teacher.setAge(teacherForm.getAge());</p>
<p>teacher.setGender(teacherForm.getGender());</p>
<p>teacher.setMajor(teacherForm.getMajor());</p>
<p>teacher.setDepartment(teacherForm.getDepartment());</p>
<p>//持久化Teacher对象到数据库HibernateDAO=;</p>
<p>HibernateDAO.save(teacher);</p>
<p>而使用BeanUtils后，代码就大大改观了，如下所示：</p>
<p>//得到TeacherFormTeacherForm teacherForm=(TeacherForm)form;</p>
<p>//构造Teacher对象Teacher teacher=new Teacher();/</p>
<p>/赋值BeanUtils.copyProperties(teacher,teacherForm);</p>
<p>//持久化Teacher对象到数据库HibernateDAO=;HibernateDAO.save(teacher);</p>
<p>如果Teacher和TeacherForm间存在名称不相同的属性，则BeanUtils不对这些属性进行处理，需要程序员手动处理。例如 Teacher包含modifyDate（该属性记录最后修改日期，不需要用户在界面中输入）属性而TeacherForm无此属性，那么在上面代码的 copyProperties()后还要加上一句：teacher.setModifyDate(new Date());怎么样，很方便吧！除BeanUtils外还有一个名为PropertyUtils的工具类，它也提供copyProperties()方法，作用与BeanUtils的同名方法十分相似，主要的区别在于后者提供类型转换功能，即发现两个JavaBean的同名属性为不同类型时，在支持的数据类型范围内进行转换，而前者不支持这个功能，但是速度会更快一些。</p>
<p>BeanUtils支持的转换类型如下：&nbsp;&nbsp;&nbsp; * java.lang.BigDecimal&nbsp;&nbsp;&nbsp; * java.lang.BigInteger&nbsp;&nbsp;&nbsp; * boolean and java.lang.Boolean&nbsp;&nbsp;&nbsp; * byte and java.lang.Byte&nbsp;&nbsp;&nbsp; * char and java.lang.Character&nbsp;&nbsp;&nbsp; * java.lang.Class&nbsp;&nbsp;&nbsp; * double and java.lang.Double&nbsp;&nbsp;&nbsp; * float and java.lang.Float&nbsp;&nbsp;&nbsp; * int and java.lang.Integer&nbsp;&nbsp;&nbsp; * long and java.lang.Long&nbsp;&nbsp;&nbsp; * short and java.lang.Short&nbsp;&nbsp;&nbsp; * java.lang.String&nbsp;&nbsp;&nbsp; * java.sql.Date&nbsp;&nbsp;&nbsp; * java.sql.Time&nbsp;&nbsp;&nbsp; * java.sql.Timestamp 这里要注意一点，java.util.Date是不被支持的，而它的子类java.sql.Date是被支持的。因此如果对象包含时间类型的属性，且希望被转换的时候，一定要使用java.sql.Date类型。否则在转换时会提示argument mistype异常。</p>
<p>三、优缺点：Apache Jakarta Commons项目非常有用。我曾在许多不同的项目上或直接或间接地使用各种流行的commons组件。其中的一个强大的组件就是BeanUtils。我将说明如何使用BeanUtils将local实体bean转换为对应的value 对象：BeanUtils.copyProperties(aValue, aLocal)上面的代码从aLocal对象复制属性到aValue对象。它相当简单！它不管local（或对应的value）对象有多少个属性，只管进行复制。我们假设local对象有100个属性。上面的代码使我们可以无需键入至少100行的冗长、容易出错和反复的get和set方法调用。这太棒了！太强大了！太有用了！现在，还有一个坏消息：使用BeanUtils的成本惊人地昂贵！我做了一个简单的测试，BeanUtils所花费的时间要超过取数据、将其复制到对应的 value对象（通过手动调用get和set方法），以及通过串行化将其返回到远程的客户机的时间总和。所以要小心使用这种威力！</p>
          <br/>
          <span style="color:red;">
            <a href="http://oranges.javaeye.com/blog/188067#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 29 Apr 2008 15:19:04 +0800</pubDate>
        <link>http://oranges.javaeye.com/blog/188067</link>
        <guid>http://oranges.javaeye.com/blog/188067</guid>
      </item>
      <item>
        <title>英文校验：</title>
        <author>coredeo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://oranges.javaeye.com">coredeo</a>&nbsp;
          链接：<a href="http://oranges.javaeye.com/blog/187726" style="color:red;">http://oranges.javaeye.com/blog/187726</a>&nbsp;
          发表时间: 2008年04月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;;"><span style="font-size: small;">英文校验：</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">&lt;input<span style="mso-spacerun: yes;">&nbsp;&nbsp; </span>type="text"<span style="mso-spacerun: yes;">&nbsp; </span>name="menuCode" value=""&gt;&lt;br/&gt;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;">&lt;input type="button" name="btnSave" value="</span></span><span style="font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;;">提交</span><span lang="EN-US"><span style="font-family: Times New Roman;">" id="btnSave" class="" onClick="return ValidateCode();" &gt;</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;">&lt;script&gt;<span style="mso-spacerun: yes;">&nbsp;&nbsp; </span></span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">function ValidateCode(){</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">&nbsp; </span>var pattern = /^([a-zA-Z])+$/;<span style="mso-spacerun: yes;">&nbsp; </span></span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">&nbsp; </span>if(pattern.test(document.forms[0].menuCode.value)){</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">&nbsp; </span><span style="mso-tab-count: 1;">&nbsp;&nbsp;&nbsp; </span>return true;</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">&nbsp; </span>}else{<span style="mso-spacerun: yes;">&nbsp;&nbsp; </span></span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">&nbsp; </span>alert("</span></span><span style="font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;;">请输入英文编码</span><span lang="EN-US"><span style="font-family: Times New Roman;">!"); </span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">&nbsp; </span>document.forms[0].menuCode.focus();</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">&nbsp; </span>return false;</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">&nbsp; </span>}<span style="mso-spacerun: yes;">&nbsp; </span></span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">&nbsp; </span>}</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style="mso-spacerun: yes;">&nbsp; </span>&lt;/script&gt;</span></span></span></p>
          <br/>
          <span style="color:red;">
            <a href="http://oranges.javaeye.com/blog/187726#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 28 Apr 2008 18:30:56 +0800</pubDate>
        <link>http://oranges.javaeye.com/blog/187726</link>
        <guid>http://oranges.javaeye.com/blog/187726</guid>
      </item>
      <item>
        <title>Struts常见错误及原因分析</title>
        <author>coredeo</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://oranges.javaeye.com">coredeo</a>&nbsp;
          链接：<a href="http://oranges.javaeye.com/blog/187724" style="color:red;">http://oranges.javaeye.com/blog/187724</a>&nbsp;
          发表时间: 2008年04月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-size: small;"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; line-height: 150%; text-align: left; mso-pagination: widow-orphan;"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">本篇文章包含了在用</span><span lang="EN-US" style="line-height: 150%; font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;">Struts</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">开发</span><span lang="EN-US" style="line-height: 150%; font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;">web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">应用时经常碰到的一些异常和错误，根据异常或错误信息本身，经常可以找到潜在的错误发生原因。</span><span lang="EN-US" style="line-height: 150%; font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;"></span></p>
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 0pt; line-height: 150%; text-align: left; mso-pagination: widow-orphan;"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">下面列出了一些</span><span lang="EN-US" style="line-height: 150%; font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;">Struts</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">的常见错误和异常，并给出了一些可能发生此类错误或异常的原因。有的后面有相关连接，你可以通过它找到更多的信息。</span><span lang="EN-US" style="line-height: 150%; font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;"></span></p>
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; line-height: 150%; text-align: left; mso-pagination: widow-orphan;">
<table class="MsoNormalTable" border="0" width="100%" cellpadding="0" style="width: 100%; mso-cellspacing: 1.5pt; mso-padding-alt: 0cm 0cm 0cm 0cm;">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<td width="99%" colspan="2" style="background: #003366; width: 99.3%; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="center" style="margin: 0cm 0cm 10.5pt; text-align: center; mso-pagination: widow-orphan;"><strong><span lang="EN-US" style="font-size: 12pt; color: white; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">Cannot retrieve mapping for action</span></strong><strong><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> </span></strong><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td style="background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">异常</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
<td width="94%" style="width: 94.74%; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">javax.servlet.jsp.JspException: Cannot retrieve mapping for action <em>/Login </em></span><em><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">（</span></em><em><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">/Login</span></em><em><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">是你的</span></em><em><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">action</span></em><em><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">名字）</span></em><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">&nbsp; </span></p>
</td>
<td width="94%" style="width: 94.74%; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">&nbsp;</span><span lang="EN-US" style="font-size: 10pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> </span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes;">
<td valign="top" style="background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">可能原因</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
<td width="94%" style="width: 94.74%; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">action</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">没有再</span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">struts-config.xml</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> </span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">中定义，或没有找到匹配的</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">action</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">，例如在</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">JSP</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">文件中使用</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">&lt;html:form action="</span><em><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">Login.do</span></em><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">"</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">.</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">将表单提交给</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">Login.do</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">处理，如果出现上述异常，请查看</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">struts-config.xml</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">中的定义部分，有时可能是打错了字符或者是某些不符合规则，可以使用</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">struts console</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">工具来检查。</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
</tr>
</tbody>
</table>
</p>
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 0pt; line-height: 150%; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="line-height: 150%; font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;">&nbsp;</span></p>
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; line-height: 150%; text-align: left; mso-pagination: widow-orphan;">
<table class="MsoNormalTable" border="0" width="100%" cellpadding="0" style="width: 100%; mso-cellspacing: 1.5pt; mso-padding-alt: 0cm 0cm 0cm 0cm;">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<td width="99%" colspan="2" style="background: #003366; width: 99.3%; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="center" style="margin: 0cm 0cm 10.5pt; text-align: center; mso-pagination: widow-orphan;"><strong><span lang="EN-US" style="font-size: 12pt; color: white; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">Cannot retrieve definition for form bean null </span></strong><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td width="8%" style="width: 8.62%; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">异常</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
<td width="90%" style="width: 90.32%; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">org.apache.jasper.JasperException: Cannot retrieve definition for form bean null </span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2; mso-yfti-lastrow: yes;">
<td valign="top" width="8%" style="width: 8.62%; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">可能原因</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br /><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p>
</td>
<td width="90%" style="width: 90.32%; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">这个异常是因为</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">Struts</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">根据</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">struts-config.xml</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">中的</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">mapping</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">没有找到</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">action</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">期望的</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">form bean</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">。大部分的情况可能是因为在</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">form-bean</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">中设置的</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">name</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">属性和</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">action</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">中设置的</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">name</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">属性不匹配所致。换句话说，</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">action</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">和</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">form</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">都应该各自有一个</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">name</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">属性，并且要精确匹配，包括大小写。这个错误当没有</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">name</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">属性和</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">action</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">关联时也会发生，如果没有在</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">action</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">中指定</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">name</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">属性，那么就没有</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">name</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">属性和</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">action</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">相关联。当然当</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">action</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">制作某些控制时，譬如根据参数值跳转到相应的</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">jsp</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">页面，而不是处理表单数据，这是就不用</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">name</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">属性，这也是</span><span lang="EN-US" style="font-size: 12pt; font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">action</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Courier New&quot;; mso-hansi-font-family: &quot;Courier New&quot;; mso-bidi-font-family: &quot;Courier New&quot;; mso-font-kerning: 0pt;">的使用方法之一。</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
</tr>
</tbody>
</table>
</p>
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 0pt; line-height: 150%; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="line-height: 150%; font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;">&nbsp;</span></p>
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; line-height: 150%; text-align: left; mso-pagination: widow-orphan;">
<table class="MsoNormalTable" border="0" cellpadding="0" style="margin: auto auto auto -42.75pt; mso-cellspacing: 1.5pt; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-table-layout-alt: fixed;">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<td width="856" colspan="2" style="background: #003366; width: 642pt; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="center" style="margin: 0cm 0cm 10.5pt; text-align: center; mso-pagination: widow-orphan;"><strong><span lang="EN-US" style="font-size: 12pt; color: white; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">No action instance for path /<em>xxxx</em> could be created </span></strong><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td width="69" style="width: 51.75pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">异常</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
<td width="785" style="width: 588.75pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">No action instance for path /<em>xxxx</em> could be created </span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td rowspan="6" valign="top" width="69" style="width: 51.75pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">可能原因</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
<td width="785" style="width: 588.75pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">特别提示：因为有很多中情况会导致这个错误的发生，所以推荐大家调高你的</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">web</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">服务器的日志</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">/</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">调试级别，这样可以从更多的信息中看到潜在的、在试图创建</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">action</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">类时发生的错误，这个</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">action</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">类你已经在</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">struts-config.xml</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">中设置了关联（即添加了</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">&lt;action&gt;</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">标签）。</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td width="785" style="width: 588.75pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">在</span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">struts-config.xml</span><span style="font-size: 10pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">中通过<span lang="EN-US">action</span>标签的<span lang="EN-US">class</span>属性指定的<span lang="EN-US">action</span>类不能被找到有很多种原因，例如：</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
<ul type="disc">
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l2 level1 lfo1; tab-stops: list 36.0pt;"><span style="font-size: small;"><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">定位编译后的</span><span lang="EN-US" style="font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;">.class</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">文件失败。</span><span lang="EN-US" style="font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;">Failure to place compiled </span></span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">.class</span><span style="font-size: small;"><span lang="EN-US" style="font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;"> file for the action in the classpath (</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">在</span><span lang="EN-US" style="font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;">web</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">开发中，</span><span lang="EN-US" style="font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;">class</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">的的位置在</span><span lang="EN-US" style="font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;">r </span></span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">WEB-INF/classes</span><span style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">，</span><span style="font-size: 10pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">所以你的<span lang="EN-US">action class</span>必须要在这个目录下。例如你的<span lang="EN-US">action</span>类位于<span lang="EN-US">WEB-INF/classes/action/Login.class,</span>那么在<span lang="EN-US">struts-config.xml</span>中设置<span lang="EN-US">action</span>的属性<span lang="EN-US">type</span>时就是<span lang="EN-US">action.Login</span></span><span lang="EN-US" style="font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;"><span style="font-size: small;">). </span></span></li>
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l2 level1 lfo1; tab-stops: list 36.0pt;"><span style="font-size: small;"><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">拼写错误，这个也时有发生，并且不易找到，特别注意第一个字母的大小写和包的名称。</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;"> </span></span><span lang="EN-US" style="font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;"></span></li>
</ul>
</td>
</tr>
<tr style="mso-yfti-irow: 4;">
<td width="785" style="width: 588.75pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">在</span><span lang="EN-US" style="font-size: 10pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">struts-config.xml</span><span style="font-size: 10pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">中指定的<span lang="EN-US">action</span>类没有继承自<span lang="EN-US">Stuts</span>的<span lang="EN-US">Action</span>类，或者你自定义的<span lang="EN-US">Action</span>类没有继承自<span lang="EN-US">Struts</span>提供的<span lang="EN-US">Action</span>类。 </span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"></span></p>
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 10pt; color: navy; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">你的<span lang="EN-US">action</span>类必须继承自<span lang="EN-US">Struts</span>提供的<span lang="EN-US">Action</span>类。</span><span style="font-size: 12pt; color: navy; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> </span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 5;">
<td width="785" style="width: 588.75pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">你的<span lang="EN-US">classpath</span>的问题。例如<span lang="EN-US">web server</span>没有发现你的资源文件，资源文件必须在</span><span lang="EN-US" style="font-size: 10pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">WEB-INF/classes/</span><span style="font-size: 10pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">目录下</span><span style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">。</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> </span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 6;">
<td width="785" style="width: 588.75pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">Problem in </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">struts-config.xml</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> file with action mapping. </span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 7;">
<td width="785" style="width: 588.75pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">Problem with </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">data-sources.xml</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> file. </span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 8; mso-yfti-lastrow: yes;">
<td valign="top" width="69" style="width: 51.75pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">相关链接</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
<td width="785" style="width: 588.75pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<ul type="disc">
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l6 level1 lfo2; tab-stops: list 36.0pt;"><span lang="EN-US" style="font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;"><a href="http://www.mail-archive.com/struts-user@jakarta.apache.org/msg65874.html"><span style="color: #1d58d1; text-decoration: none; text-underline: none;"><span style="font-size: small;">http://www.mail-archive.com/struts-user@jakarta.apache.org/msg65874.html</span></span></a><span style="font-size: small;"> </span></span></li>
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l6 level1 lfo2; tab-stops: list 36.0pt;"><span lang="EN-US" style="font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;"><span style="font-size: small;">Action Mapping mistake in </span></span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">struts-config.xml</span><span lang="EN-US" style="font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;"><span style="font-size: small;">:<br /></span><a href="http://www.manning.com/ao/readforum.html?forum=siaao&amp;readthread=177"><span style="color: #1d58d1; text-decoration: none; text-underline: none;"><span style="font-size: small;">http://www.manning.com/ao/readforum.html?forum=siaao&amp;readthread=177</span></span></a><span style="font-size: small;"> </span></span></li>
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l6 level1 lfo2; tab-stops: list 36.0pt;"><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">data-sources.xml</span><span lang="EN-US" style="font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;"><span style="font-size: small;"> file?:<br /></span><a href="http://www.caucho.com/quercus/faq/section.xtp?section_id=30"><span style="color: #1d58d1; text-decoration: none; text-underline: none;"><span style="font-size: small;">http://www.caucho.com/quercus/faq/section.xtp?section_id=30</span></span></a><span style="font-size: small;"> </span></span></li>
</ul>
</td>
</tr>
</tbody>
</table>
</p>
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 0pt; line-height: 150%; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="line-height: 150%; font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;">&nbsp;</span></p>
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; line-height: 150%; text-align: left; mso-pagination: widow-orphan;">
<table class="MsoNormalTable" border="0" width="859" cellpadding="0" style="margin: auto auto auto -42.75pt; width: 644.25pt; mso-cellspacing: 1.5pt; mso-padding-alt: 0cm 0cm 0cm 0cm;">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<td width="855" colspan="2" style="background: #003366; width: 641.25pt; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="center" style="margin: 0cm 0cm 10.5pt; text-align: center; mso-pagination: widow-orphan;"><strong><span lang="EN-US" style="font-size: 12pt; color: white; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">No getter method for property <em>XXXX</em> of bean org.apache.struts.taglib.html.BEAN </span></strong><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td width="57" style="width: 42.75pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">异常</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
<td width="796" style="width: 597pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">javax.servlet.jsp.JspException: No getter method for property <em>username</em> of bean org.apache.struts.taglib.html.BEAN </span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td rowspan="2" width="57" style="width: 42.75pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">可能原因</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
<td width="796" style="width: 597pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">没有位</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">form bean</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">中的某个变量定义</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">getter </span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">方法</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> </span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td width="796" style="width: 597pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">这个错误主要发生在表单提交的</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">FormBean</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">中，用</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">struts</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">标记</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">&lt;html:text property=&rdquo;username&rdquo;&gt;</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">时，在</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">FormBean</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">中必须有一个</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">getUsername()</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">方法。注意字母&ldquo;</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">U</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">&rdquo;。</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> </span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;">
<td width="57" style="width: 42.75pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">Related Links </span></p>
</td>
<td width="796" style="width: 597pt; background-color: transparent; border: #d4d0c8; padding: 0.75pt;">
<ul type="disc">
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo3; tab-stops: list 36.0pt;"><span lang="EN-US" style="font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;"><span style="font-size: small;">Case can trip up the matching between get method's name and name specified in Struts tag<br /></span><a href="http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&amp;f=58&amp;t=000163"><span style="color: #1d58d1; text-decoration: none; text-underline: none;"><span style="font-size: small;">http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&amp;f=58&amp;t=000163</span></span></a><span style="font-size: small;"> </span></span></li>
</ul>
</td>
</tr>
</tbody>
</table>
</p>
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 0pt; line-height: 150%; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="line-height: 150%; font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;">&nbsp;</span></p>
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; line-height: 150%; text-align: left; mso-pagination: widow-orphan;">
<table class="MsoNormalTable" cellspacing="5" border="0" width="852" cellpadding="0" style="margin: auto auto auto -37.55pt; width: 639.05pt; mso-cellspacing: 3.7pt; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt;">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<td width="842" colspan="2" style="background: #003366; width: 631.65pt; border: #d4d0c8; padding: 3.75pt;">
<p class="MsoNormal" align="center" style="margin: 0cm 0cm 10.5pt; text-align: center; mso-pagination: widow-orphan;"><strong><span lang="EN-US" style="font-size: 12pt; color: white; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm </span></strong><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td width="53" style="width: 39.45pt; background-color: transparent; border: #d4d0c8; padding: 3.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">错误</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
<td width="785" style="width: 588.5pt; background-color: transparent; border: #d4d0c8; padding: 3.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm </span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td rowspan="2" valign="top" width="53" style="width: 39.45pt; background-color: transparent; border: #d4d0c8; padding: 3.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">可能原因</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
<td width="785" style="width: 588.5pt; background-color: transparent; border: #d4d0c8; padding: 3.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">这个错误主要发生在在</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">classpath</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">中找不到相应的</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">Java .class</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">文件。如果这个错误发生在</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">web</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">应用程序的运行时，主要是因为指定的</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">class</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">文件不在</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">web server</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">的</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">classpath</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">中（</span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">/WEB-INF/classes</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> </span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">和</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">/WEB-INF/lib</span><span style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">）。 </span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"></span></p>
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 10pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">在上面的错误中，原因是找不到<span lang="EN-US">ActionForm</span>类。</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td width="785" style="width: 588.5pt; background-color: transparent; border: #d4d0c8; padding: 3.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">This error is sometimes seen when one or more </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">ActionForm.class</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> instances are actually in the classpath. This most often occurs when </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">ActionForm.class</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> is made available correctly by placing </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">struts.jar</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> in the </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">/WEB-INF/lib</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> directory. When this library has been correctly placed and it is verified that </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">ActionForm.class</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> actually is present in the </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">struts.jar</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> file, the problem is either that more than one copy of </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">ActionForm.class</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> is in the classpath or (more likely) that duplicate versions of class files other than </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">ActionForm</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> are in the same classpath, causing confusion. This is especially true if a class that extends </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">ActionForm</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> is made available twice, such as in an </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">.ear</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> file that encompasses a </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">.war</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> file as well as in the </span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">.war</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> file's own classpath (</span><span lang="EN-US" style="font-size: 10pt; font-family: 黑体; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">/WEB-INF/classes</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">). This problem can be resolved by guaranteeing that there are no redundant classes, especially those related to Struts (directly from Struts or extensions of Struts), in the web application's view. </span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;">
<td width="53" style="width: 39.45pt; background-color: transparent; border: #d4d0c8; padding: 3.75pt;">
<p class="MsoNormal" align="left" style="margin: 0cm 0cm 10.5pt; text-align: left; mso-pagination: widow-orphan;"><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">相关连接</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;"> <span lang="EN-US"></span></span></p>
</td>
<td width="785" style="width: 588.5pt; background-color: transparent; border: #d4d0c8; padding: 3.75pt;">
<ul type="disc">
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l5 level1 lfo4; tab-stops: list 36.0pt;"><span lang="EN-US" style="font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt;"><span style="font-size: small;">EJB and Web Shared Links:<br /></span><a href="http://forum.java.sun.com/thread.jsp?forum=26&amp;thread=413060&amp;tstart=0&amp;trange=15" target="_new"><span style="color: #1d58d1; text-decoration: none; text-underline: none;"><span style="font-size: small;">http://forum.java.sun.com/thread.jsp?forum=26&amp;thread=413060&amp;tstart=0&amp;trange=15</span></span></a><span style="font-size: small;"> </span></span></li>
li<li class="M</ul></td></tr></tbody></table></p></span></span></p>
          <br/>
          <span style="color:red;">
            <a href="http://oranges.javaeye.com/blog/187724#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 28 Apr 2008 18:26:52 +0800</pubDate>
        <link>http://oranges.javaeye.com/blog/187724</link>
        <guid>http://oranges.javaeye.com/blog/187724</guid>
      </item>
  </channel>
</rss>