??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲jjzzjjzz在线观看,亚洲成人在线免费观看,精品亚洲aⅴ在线观看http://www.tkk7.com/zilong/ <center> 新的征?..... </center>zh-cnMon, 12 May 2025 14:45:02 GMTMon, 12 May 2025 14:45:02 GMT60强制cd转换QArrayList使用toArray()构造数l时的问?/title><link>http://www.tkk7.com/zilong/archive/2010/06/25/324376.html</link><dc:creator>阿伟</dc:creator><author>阿伟</author><pubDate>Thu, 24 Jun 2010 16:49:00 GMT</pubDate><guid>http://www.tkk7.com/zilong/archive/2010/06/25/324376.html</guid><wfw:comment>http://www.tkk7.com/zilong/comments/324376.html</wfw:comment><comments>http://www.tkk7.com/zilong/archive/2010/06/25/324376.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/zilong/comments/commentRss/324376.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/zilong/services/trackbacks/324376.html</trackback:ping><description><![CDATA[<p><font face="Verdana" size="2">本文链接Q?<a >http://blog.csdn.net/jrq/archive/2005/10/27/517428.aspx</a></font></p> <p><font face="Verdana" size="2">正文Q?/font></p> <p>1. Z方便按列作外循环Q想把ArrayList构造成一个二l数l,如下Q?/p> <p>    ......</p> <p>  ArrayList result=GetResult(); </p> <p>  int n=result.size();</p> <p>  String[][] myArray=new String[n][]; //定义二维数组<br />  <br />   for (int i=0;i<n;i++)  //构造二l数l?br />   {<br />     ArrayList tempArray= (ArrayList)result.get(i);<br />     myArray[i]=(String[])tempArray.toArray(); <br />   }</p> <p>  ......</p> <p>E序可以~译通过?/p> <p>但在q行到myArray[i]=(String[])tempArray.toArray()Ӟ出现java.lang.ClassCastException的错误,很奇怪?/p> <p>׃一晚上旉Q查了N多资料,ȝ搞定了。现把问题记录下来,以备参考?/p> <p>2. 此事从头说v。  </p> <p>ArrayListcL展AbstractListq执行List接口。ArrayList支持可随需要而增长的动态数l?/p> <p>    ArrayList有如下的构造函敎ͼ<br />   <br />         ArrayList( )<br />         ArrayList(Collection c)<br />         ArrayList(int capacity)</p> <p>如果调用new ArrayList()构造时Q其默认的capacity(初始定w)?0?/p> <p>参见ArrayList源码Q其中是q样定义的:</p> <p>    public ArrayList() {<br />   this(10);<br />      }</p> <p>默认初始化内部数l大ؓ10。ؓ什么是10Q不知道。可能SUN觉得q样比较爽吧?/p> <p>E序~译后执行ArrayList.toArray()Q把ArrayList转化为数l时Q该数组大小仍ؓcapacityQؓ10Q?/p> <p>?装入的数据和capacityg{时Q小于capacityQ,比如只装入了5个数据,数组中后面的Qcapacity - sizeQ个对象置为nullQ此时当数组强制cd转换ӞҎ出现一些问题,如java.lang.ClassCastException异常{?/p> <p>解决办法是:在用ArrayList转化为数l装数据后,使用trimToSize()重新讄数组的真实大?/p> <p><br /> </p> <p>3. 本例修改后的代码修如下,可顺利运行:</p> <p>    for (int i=0;i<n;i++)  //构造二l数l?br />       {<br />             ArrayList tempArray= (ArrayList)result.get(i);<br />             myArray[i]=(String[])tempArray.toArray(new String[0]);   <font color="#ff0000">//注意此处的写?br /> </font>       }</p> <p> 看看下面q些也许明白了Q-</p> <p>ArrayList.toArray()之一Q?/p> <p>public Object[] toArray() {<br />   Object[] result = new Object[size];<br />   System.arraycopy(elementData, 0, result, 0, size);<br />   return result;<br /> }</p> <p>q回ArrayList元素的一个数l,注意q里虽然生成了一个新的数l,但是数组元素和集合中的元素是׃n的,Collection接口中说q个是安全的Q这是不严格的?/p> <p>下面的例子演CZq个效果?br />  <br />    ArrayList al=new ArrayList();<br />    al.add(new StringBuffer("hello"));<br />    Object[] a=al.toArray();<br />    StringBuffer sb=(StringBuffer)a[0];<br />    sb.append("changed");  //改变数组元素同样也改变了原来的ArrayList中的元素<br />    System.out.println(al.get(0));     </p> <p>q里不要用String来代替StringBufferQ因为String是不可变的?/p> <p><br /> ArrayList.toArray()之二Q?/p> <p>public Object[] toArray(Object a[]) {<br />   if (a.length < size)<br />     a = (Object[])java.lang.reflect.Array.newInstance(a.getClass().getComponentType(), size);<br />    System.arraycopy(elementData, 0, a, 0, size);<br />    if (a.length > size)<br />       a[size] = null;<br />    return a;<br /> }</p> <p>q个Ҏ有可能不需要生成新的数l,注意到如果数la定wq大Q只在size处设|ؓnull?/p> <p><font color="#ff0000">如果q个数组a_大,׃把数据全放进去,q回的数l也是指向这个数l,Q数l多余的I间存储的是null对象Q;要是不够大,q请一个跟参数同样cd的数l,把值放q去Q然后返回?/font></p> <p><br /> 4. |上的资料一Q?/p> <p>  public String[] getPlatformIDList()<br />   <br />   {<br />         Vector result = new Vector();<br />         try<br />         {<br />             Statement stmt = conn.createStatement();<br />             String sql = "SELECT PlatformID FROM Platform";<br />             rs = stmt.executeQuery(sql);<br />             while(rs.next())<br />             {<br />                 result.add(rs.getString(1));<br />             }        <br />             if (result.size() > 0)<br />             {<br />                 String[] str = (String[]) result.toArray(); // 出现ClassCastException<br />                 return str;<br />             }<br />             else<br />                 return null;<br />         }<br />         catch(Exception e)<br />         {<br />             System.err.println(e);<br />             return null;<br />         }<br />         finally<br />         {<br />             try<br />             {<br />                 rs.close();<br />                 conn.close();<br />             }<br />             catch(Exception e2)<br />             {}<br />         }<br />     }</p> <p>    E序q行后,发现不能VectorcȝqtoArray()Ҏ得到的Object[]直接转换成String[]?/p> <p>    扑ֈ用另一个带有参数的 toArray(T[] a)Ҏ才可以?/p> <p>    该语句改ؓQ?/p> <p>    String[] str = (String[]) result.toArray(new String[1]);卛_诉VectorQ我要得到的数组的类型?/p> <p>    回想一下,应该是java中的强制cd转换只是针对单个对象的,惌hQ将整个数组转换成另外一U类型的数组是不行的?/p> <p><br /> 5. |上的资料二Q?/p> <p>    正确使用List.toArray()Q-<br />   <br />    在程序中Q往往得到一个ListQ程序要求对应赋值给一个arrayQ可以这样写E序:<br />  <br />     Long [] l = new Long[list.size()];<br />     for(int i=0;i<list.size();i++)<br />         l[i] = (Long) list.get(i);<br />  <br />     要写q些codeQ似乎比较繁琐,其实List提供了toArray()的方法?br />     但是要用不好,׃有ClassCastExceptiony异常。究竟这个是如何产生的,且看代码Q?/p> <p>        List list = new ArrayList();<br />         list.add(new Long(1));list.add(new Long(2));<br />         list.add(new Long(3));list.add(new Long(4));<br />         <font color="#ff0000">Long[] l = (Long[])list.toArray();</font><br />         for(int i=0; i<l.length; i++)<br />             System.out.println(l[i].longValue());</p> <p>    U色代码会抛java.lang.ClassCastException?/p> <p>    当然Qؓ了读出值来Q你可以q样code:</p> <p>        Object [] a =  list.toArray();<br />         for(int i=0;i<a.length;i++)<br />             System.out.println(((Long)a[i]).longValue());</p> <p>    但是让数l丢׃cd信息Q这个不是我们想要得?/p> <p><br />     toArray()正确使用方式如下Q?/p> <p>        1)  Long[] l = new Long[<total size>];<br />               list.toArray(l);<br />  <br />         2)  Long[] l = (Long []) list.toArray(new Long[0]);</p> <p>        3)  Long [] a = new Long[<total size>];<br />               Long [] l = (Long []) list.toArray(a);</p> <p>6. ȝ补充Q?/p> <p>      java sdk doc 上讲:<br />  <br />       public Object[] toArray(Object[] a) </p> <p>      a--the array into which the elements of this list are to be stored, if it is big enough; otherwise, a new array of the same  runtime type is allocated for this purpose. </p> <p>      如果q个数组a_大,׃把数据全放进去,q回的数l也是指向这个数l,Q数l多余的I间存储的是null对象Q;要是不够大,q请一个跟参数同样cd的数l,把值放q去Q然后返回?br />  <br />      需要注意的是:你要是传入的参数?个大,而list里面?个object,那么其他的四个很可能是null , 使用的时候要特别注意?/p> <p>7. 完毕?/p> <p> </p> <p>                                                                                                              J.R.Q.</p> <p>                                                                                                    2005.10.27凌晨于广?nbsp; </p> <img src ="http://www.tkk7.com/zilong/aggbug/324376.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/zilong/" target="_blank">阿伟</a> 2010-06-25 00:49 <a href="http://www.tkk7.com/zilong/archive/2010/06/25/324376.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于birt中文参数http://www.tkk7.com/zilong/archive/2009/07/02/285089.html阿伟阿伟Thu, 02 Jul 2009 01:56:00 GMThttp://www.tkk7.com/zilong/archive/2009/07/02/285089.htmlhttp://www.tkk7.com/zilong/comments/285089.htmlhttp://www.tkk7.com/zilong/archive/2009/07/02/285089.html#Feedback1http://www.tkk7.com/zilong/comments/commentRss/285089.htmlhttp://www.tkk7.com/zilong/services/trackbacks/285089.html之前看网上有人发帖说有个解决办法?/span>“?/span>viewservlet.jar下找?/span>org/eclipse/birt/report/utility下找?/span>ParameterAccessor.class文gQ现在要修改q个文g的源代码Q?nbsp;

你可以在你从CVS中签出的源代码中?/span>org.eclipse.birt.report.viewer/birt/WEB-INF/classes/org/eclipse/birt/report/utility文g夹中扑ֈParameterAccessor.java文gQ在q个java文g中找到这行:

public static final String UTF_8_ENCODE = "UTF-8"; //$NON-NLS-1$

这行改?/span>

public static final String UTF_8_ENCODE = "GBK"; //$NON-NLS-1$

然后这个编译好?/span>class文g压羃?/span>viewservlets.jar的同{目录下Q替换原来的文g”Q本Z试了q种ҎQ但没见凑效Q不q上面的解决Ҏ好像是在birt2.1的环境下Q这个没仔细试,也许对birt2.1有效吧?/span>


本h使用birt版本2.3Q解军_法如?
在JSP中调用BIRT报表Ӟ传的参数中有中文字符Q即URL中包含中文字W,q时在BIRT端接收到的参数拼SQL语句后发C文字W被转码Q造成SQL中的条g不正?br /> 因ؓ在JSP中调用BIRT是在一个JS脚本中,因此要想办法在JS中先中文{成UTF-8,q且在BIRT获取参数后再UTF-8转换回中文即可?br /> 实现代码Q?br /> 面JS:
Var mychecktype = “中文”;
sqlWhere+="and t.CHECK_TYPE = '"+escape(encodeURI(mychecktype))+"'";

BIRT脚本Q?br /> sql+=decodeURI(mycondition);



阿伟 2009-07-02 09:56 发表评论
]]>
jsW二ơ调用function时LC‘缺函数’的问题解决http://www.tkk7.com/zilong/archive/2008/11/27/243005.html阿伟阿伟Thu, 27 Nov 2008 06:58:00 GMThttp://www.tkk7.com/zilong/archive/2008/11/27/243005.htmlhttp://www.tkk7.com/zilong/comments/243005.htmlhttp://www.tkk7.com/zilong/archive/2008/11/27/243005.html#Feedback0http://www.tkk7.com/zilong/comments/commentRss/243005.htmlhttp://www.tkk7.com/zilong/services/trackbacks/243005.html 问题Q?/span>

面中写了一个函?/span>a,在另一个函C调用Q页面用的是一?/span>iframe框架Q即通过iframe?/span>src参数来刷?/span>iframe中的面Q每ơ在W一ơ调用函?/span>a时没问题Q但W二ơ点L钮调用函?/span>a时老报“~少函数”的错误?

function a(var1)
{
  ...
  return a;
}

W一?/span> alert(a(var1)) 沒有問題Q第二次出錯了

解决Q?br />  

后来发现函数中返回值变量名和函数名定义为同一个名字,把返回值变量名Ҏ其它名字后问题就解决了,好弱的一个问题啊Q折腾了我半天,气愤Q?/span>

Ҏ return b 好?/span> -_-



阿伟 2008-11-27 14:58 发表评论
]]>
q原数据库(执行大数据量备䆾文gq原Ӟhttp://www.tkk7.com/zilong/archive/2008/09/13/228681.html阿伟阿伟Fri, 12 Sep 2008 16:23:00 GMThttp://www.tkk7.com/zilong/archive/2008/09/13/228681.htmlhttp://www.tkk7.com/zilong/comments/228681.htmlhttp://www.tkk7.com/zilong/archive/2008/09/13/228681.html#Feedback0http://www.tkk7.com/zilong/comments/commentRss/228681.htmlhttp://www.tkk7.com/zilong/services/trackbacks/228681.htmll常遇到备䆾了一个几十M的SQL文gQ还原时无法执行或执行一半就挂了Q好像就是因为太大了Q本来用MYSQL 的Administrator工具

q原备䆾会方便点Q但有时也会出现无法q原的问题,不知如何是好Q最后只能想到在命oH口来执行SQL文gQ好像还挺管用,?/p>

体执行命令如下:
                          先进入cmd命o行;
                         然后q入mysql命o行;
                       >mysql -u admin -p
                       >*****
                       >use dbname
                mysql>source %pass%\mySQLFile.sqlQ这里的%pass%指的是SQL文g所在的路径Q如F:/date/mysqlDB.sql,q里路径量别用?/p>

文吧Q像安装ORACLE一P中文路径可能会出现问题,用英文保险一点^_^Q?/p>

阿伟 2008-09-13 00:23 发表评论
]]>
Java异常(转蝲)http://www.tkk7.com/zilong/archive/2008/08/26/224389.html阿伟阿伟Tue, 26 Aug 2008 02:06:00 GMThttp://www.tkk7.com/zilong/archive/2008/08/26/224389.htmlhttp://www.tkk7.com/zilong/comments/224389.htmlhttp://www.tkk7.com/zilong/archive/2008/08/26/224389.html#Feedback0http://www.tkk7.com/zilong/comments/commentRss/224389.htmlhttp://www.tkk7.com/zilong/services/trackbacks/224389.html转自Qhttp://www.tkk7.com/freeman1984/archive/2007/09/27/148850.html

六种异常处理的陋?/font>

你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机Ӟ在下面这D代码中Q你能够q速找出异常处理的六个问题吗?

1 OutputStreamWriter out = ...
2 java.sql.Connection conn = ...
3 try { // ?
4  Statement stat = conn.createStatement();
5  ResultSet rs = stat.executeQuery(
6   "select uid, name from user");
7  while (rs.next())
8  {
9   out.println("IDQ? + rs.getString("uid") // ?
10    "Q姓名:" + rs.getString("name"));
11  }
12  conn.close(); // ?
13  out.close();
14 }
15 catch(Exception ex) // ?
16 {
17  ex.printStackTrace(); //_?
18 }


  作ؓ一个JavaE序员,你至应该能够找Z个问题。但是,如果你不能找出全部六个问题,Ll阅L文?

  本文讨论的不是Java异常处理的一般性原则,因ؓq些原则已经被大多数人熟知。我们要做的是分析各U可UCؓ“反例”Qanti-patternQ的q背优秀~码规范的常见坏习惯Q帮助读者熟悉这些典型的反面例子Q从而能够在实际工作中敏锐地察觉和避免这些问题?

  反例之一Q丢弃异?

  代码Q?5?18行?

  q段代码捕获了异常却不作M处理Q可以算得上Java~程中的杀手。从问题出现的频J程度和害E度来看Q它也许可以和C/C++E序的一个恶名远播的问题相提q论??不检查缓冲区是否已满。如果你看到了这U丢弃(而不是抛出)异常的情况,可以癑ֈ之九十九地肯定代码存在问题(在极数情况下,q段代码有存在的理由Q但最好加上完整的注释Q以免引起别解)?

  q段代码的错误在于,异常Q几乎)L意味着某些事情不对劲了Q或者说臛_发生了某些不d的事情,我们不应该对E序发出的求救信号保持沉默和无动于衷。调用一下printStackTrace不?#8220;处理异常”。不错,调用printStackTrace对调试程序有帮助Q但E序调试阶段l束之后QprintStackTrace׃应再在异常处理模块中担负主要责Q了?

  丢弃异常的情形非常普遍。打开JDK的ThreadDeathcȝ文档Q可以看C面这D说明:“特别圎ͼ虽然出现ThreadDeath是一U?#8216;正常的情?#8217;Q但ThreadDeathcLError而不是Exception的子c,因ؓ许多应用会捕h有的Exception然后丢弃它不再理睬?#8221;q段话的意思是Q虽然ThreadDeath代表的是一U普通的问题Q但鉴于许多应用会试图捕h有异常然后不予以适当的处理,所以JDK把ThreadDeath定义成了Error的子c,因ؓErrorcM表的是一般的应用不应该去捕获的严重问题。可见,丢弃异常q一坏习惯是如此常见Q它甚至已经影响CJava本n的设计?

  那么Q应该怎样Ҏ呢?主要有四个选择Q?

  1、处理异常。针对该异常采取一些行动,例如修正问题、提醒某个h或进行其他一些处理,要根据具体的情Ş定应该采取的动作。再ơ说明,调用printStackTrace不上已l?#8220;处理好了异常”?

  2、重新抛出异常。处理异常的代码在分析异怹后,认ؓ自己不能处理它,重新抛出异常也不׃ؓ一U选择?

  3、把该异常{换成另一U异常。大多数情况下,q是指把一个低U的异常转换成应用的异常(其含义更Ҏ被用户了解的异常Q?

  4、不要捕获异常?

  l论一Q既然捕获了异常Q就要对它进行适当的处理。不要捕获异怹后又把它丢弃Q不予理睬?

  反例之二Q不指定具体的异?

  代码Q?5行?

  许多时候h们会被这样一U?#8220;妙?#8221;x吸引Q用一个catch语句捕获所有的异常。最常见的情形就是用catch(Exception ex)语句。但实际上,在绝大多数情况下Q这U做法不值得提倡。ؓ什么呢Q?

  要理解其原因Q我们必d一下catch语句的用途。catch语句表示我们预期会出现某U异常,而且希望能够处理该异常。异常类的作用就是告诉Java~译器我们想要处理的是哪一U异常。由于绝大多数异帔R直接或间接从java.lang.ExceptionzQcatch(Exception ex)q当于说我们想要处理几乎所有的异常?

  再来看看前面的代码例子。我们真正想要捕L异常是什么呢Q最明显的一个是SQLExceptionQ这是JDBC操作中常见的异常。另一个可能的异常是IOExceptionQ因为它要操作OutputStreamWriter。显Ӟ在同一个catch块中处理q两U截然不同的异常是不合适的。如果用两个catch块分别捕获SQLException和IOExceptionp好多了。这是_catch语句应当量指定具体的异常类型,而不应该指定늛范围太广的ExceptioncR?

  另一斚wQ除了这两个特定的异常,q有其他许多异常也可能出现。例如,如果׃某种原因QexecuteQueryq回了nullQ该怎么办?{案是让它们l箋抛出Q即不必捕获也不必处理。实际上Q我们不能也不应该去捕获可能出现的所有异常,E序的其他地方还有捕获异常的Z??直至最后由JVM处理?

  l论二:在catch语句中尽可能指定具体的异常类型,必要时用多个catch。不要试囑֤理所有可能出现的异常?

  反例之三Q占用资源不释放

  代码Q??14行?

  异常改变了程序正常的执行程。这个道理虽然简单,却常常被Z忽视。如果程序用C文g、Socket、JDBCq接之类的资源,即遇到了异常,也要正确释放占用的资源。ؓ此,Java提供了一个简化这cL作的关键词finally?

  finally是样好东西:不管是否出现了异常,Finally保证在try/catch/finally块结束之前,执行清理d的代码L有机会执行。遗憄是有些h却不习惯使用finally?

  当然Q编写finally块应当多加小心,特别是要注意在finally块之内抛出的异常??q是执行清理d的最后机会,量不要再有难以处理的错误?

  l论三:保证所有资源都被正释放。充分运用finally关键词?/font>

反例之四Q不说明异常的详l信?

  代码Q??18行?

  仔细观察q段代码Q如果@环内部出C异常Q会发生什么事情?我们可以得到_的信息判断@环内部出错的原因吗?不能。我们只能知道当前正在处理的cd生了某种错误Q但却不能获得Q何信息判断导致当前错误的原因?

  printStackTrace的堆栈跟t功能显C出E序q行到当前类的执行流E,但只提供了一些最基本的信息,未能说明实际D错误的原因,同时也不易解诅R?

  因此Q在出现异常Ӟ最好能够提供一些文字信息,例如当前正在执行的类、方法和其他状态信息,包括以一U更适合阅读的方式整理和l织printStackTrace提供的信息?

  l论四:在异常处理模块中提供适量的错误原因信息,l织错误信息使其易于理解和阅诅R?

  反例之五Q过于庞大的try?

  代码Q??14行?

  l常可以看到有h把大量的代码攑օ单个try块,实际上这不是好习惯。这U现象之所以常见,原因在于有些h囄事,不愿花时间分析一大块代码中哪几行代码会抛出异常、异常的具体cd是什么。把大量的语句装入单个巨大的try块就象是出门旅游时把所有日常用品塞入一个大子Q虽然东西是带上了,但要扑և来可不容易?

  一些新手常常把大量的代码放入单个try块,然后再在catch语句中声明ExceptionQ而不是分d个可能出现异常的D落q分别捕获其异常。这U做法ؓ分析E序抛出异常的原因带来了困难Q因Z大段代码中有太多的地方可能抛出Exception?

  l论五:量减小try块的体积?

  反例之六Q输出数据不完整

  代码Q??11行?

  不完整的数据是JavaE序的隐形杀手。仔l观察这D代码,考虑一下如果@环的中间抛出了异常,会发生什么事情。@环的执行当然是要被打断的Q其ơ,catch块会执行??p些,再也没有其他动作了。已l输出的数据怎么办?使用q些数据的h或设备将收到一份不完整的(因而也是错误的Q数据,却得不到M有关q䆾数据是否完整的提C。对于有些系l来_数据不完整可能比pȝ停止q行带来更大的损失?

  较ؓ理想的处|办法是向输备写一些信息,声明数据的不完整性;另一U可能有效的办法是,先缓冲要输出的数据,准备好全部数据之后再一ơ性输出?

  l论六:全面考虑可能出现的异总及这些异常对执行程的媄响?

  改写后的代码

  Ҏ上面的讨论,下面l出改写后的代码。也许有Z说它E微有点?嗦,但是它有了比较完备的异常处理机制?

OutputStreamWriter out = ...
java.sql.Connection conn = ...
try {
 Statement stat = conn.createStatement();
 ResultSet rs = stat.executeQuery(
  "select uid, name from user");
 while (rs.next())
 {
  out.println("IDQ? + rs.getString("uid") + "Q姓? " + rs.getString("name"));
 }
}
catch(SQLException sqlex)
{
 out.println("警告Q数据不完整");
 throw new ApplicationException("d数据时出现SQL错误", sqlex);
}
catch(IOException ioex)
{
 throw new ApplicationException("写入数据时出现IO错误", ioex);
}
finally
{
 if (conn != null) {
  try {
   conn.close();
  }
  catch(SQLException sqlex2)
  {
   System.err(this.getClass().getName() + ".mymethod - 不能关闭数据库连? " + sqlex2.toString());
  }
 }

 if (out != null) {
  try {
   out.close();
  }
  catch(IOException ioex2)
  {
   System.err(this.getClass().getName() + ".mymethod - 不能关闭输出文g" + ioex2.toString());
  }
 }
}

  本文的结Z是放之四L准的教条Q有时常识和l验才是最好的老师。如果你对自q做法没有癑ֈ之百的信心,务必加上详细、全面的注释?

  另一斚wQ不要笑话这些错误,不妨问问你自己是否真地彻底摆׃q些坏习惯。即使最有经验的E序员偶也会误入歧途,原因很简单,因ؓ它们确实实带来?#8220;方便”。所有这些反例都可以看作Java~程世界的恶,它们丽动hQ无孔不入,时刻诱惑着你。也许有Z认ؓq些都属于鸡皮蒜毛的事Q不x齿,但请CQ勿以恶而ؓ之,勿以善小而不为?br />




------------------------------------------------------------------下面是一些java异常?------------------------------------------------------------------------------------------


 

术异常c:ArithmeticExecption

I指针异常类QNullPointerException

cd强制转换异常QClassCastException

数组负下标异常:NegativeArrayException

数组下标界异常QArrayIndexOutOfBoundsException

q背安全原则异常QSecturityException

文g已结束异常:EOFException

文g未找到异常:FileNotFoundException

字符串{换ؓ数字异常QNumberFormatException


操作数据库异常:SQLException


输入输出异常QIOException


Ҏ未找到异常:NoSuchMethodException

java.lang.AbstractMethodError

抽象Ҏ错误。当应用试图调用抽象Ҏ时抛出?/p>

java.lang.AssertionError

断言错。用来指CZ个断ap|的情c?/p>

java.lang.ClassCircularityError

cd@环依赖错误。在初始化一个类Ӟ若检到cM间@环依赖则抛出该异常?/p>

java.lang.ClassFormatError

cL式错误。当Java虚拟图从一个文件中dJavac,而检到该文件的内容不符合类的有效格式时抛出?/p>

java.lang.Error

错误。是所有错误的基类Q用于标识严重的E序q行问题。这些问题通常描述一些不应被应用E序捕获的反常情c?/p>

java.lang.ExceptionInInitializerError

初始化程序错误。当执行一个类的静态初始化E序的过E中Q发生了异常时抛出。静态初始化E序是指直接包含于类中的static语句Dc?/p>

java.lang.IllegalAccessError

q法讉K错误。当一个应用试图访问、修Ҏ个类的域QFieldQ或者调用其ҎQ但是又q反域或Ҏ的可见性声明,则抛异常?/p>

java.lang.IncompatibleClassChangeError

不兼容的cd化错误。当正在执行的方法所依赖的类定义发生了不兼容的改变时Q抛异常。一般在修改了应用中的某些类的声明定义而没有对整个应用重新~译而直接运行的情况下,Ҏ引发该错误?/p>

java.lang.InstantiationError

实例化错误。当一个应用试N过Java的new操作W构造一个抽象类或者接口时抛出该异?

java.lang.InternalError

内部错误。用于指CJava虚拟机发生了内部错误?/p>

java.lang.LinkageError

链接错误。该错误及其所有子cLC某个类依赖于另外一些类Q在该类~译之后Q被依赖的类改变了其cd义而没有重新编译所有的c,q而引发错误的情况?/p>

java.lang.NoClassDefFoundError

未找到类定义错误。当Java虚拟机或者类装蝲器试囑֮例化某个c,而找不到该类的定义时抛出该错误?/p>

java.lang.NoSuchFieldError

域不存在错误。当应用试图讉K或者修Ҏcȝ某个域,而该cȝ定义中没有该域的定义时抛错误?/p>

java.lang.NoSuchMethodError

Ҏ不存在错误。当应用试图调用某类的某个方法,而该cȝ定义中没有该Ҏ的定义时抛出该错误?/p>

java.lang.OutOfMemoryError

内存不错误。当可用内存不以让Java虚拟机分配给一个对象时抛出该错误?/p>

java.lang.StackOverflowError

堆栈溢出错误。当一个应用递归调用的层ơ太p导致堆栈溢出时抛出该错误?/p>

java.lang.ThreadDeath

U程l束。当调用ThreadcȝstopҎ时抛错误Q用于指C线E结束?/p>

java.lang.UnknownError

未知错误。用于指CJava虚拟机发生了未知严重错误的情c?/p>

java.lang.UnsatisfiedLinkError

未满的链接错误。当Java虚拟机未扑ֈ某个cȝ声明为nativeҎ的本a定义时抛出?/p>

java.lang.UnsupportedClassVersionError

不支持的cȝ本错误。当Java虚拟图从d某个cLӞ但是发现该文件的丅R次版本号不被当前Java虚拟机支持的时候,抛出该错误?/p>

java.lang.VerifyError

验证错误。当验证器检到某个cL件中存在内部不兼Ҏ者安全问题时抛出该错误?/p>

java.lang.VirtualMachineError

虚拟机错误。用于指C拟机被破坏或者l执行操作所需的资源不的情况?/p>


java.lang.ArithmeticException

术条g异常。譬如:整数除零{?/p>

java.lang.ArrayIndexOutOfBoundsException

数组索引界异常。当Ҏl的索引gؓ负数或大于等于数l大时抛出?/p>

java.lang.ArrayStoreException

数组存储异常。当向数l中存放非数l声明类型对象时抛出?/p>

java.lang.ClassCastException

c造型异常。假设有cA和BQA不是B的父cL子类Q,O是A的实例,那么当强制将O构造ؓcB的实例时抛出该异常。该异常l常被称为强制类型{换异常?/p>

java.lang.ClassNotFoundException

找不到类异常。当应用试图Ҏ字符串Ş式的cd构造类Q而在遍历CLASSPAH之后找不到对应名U的class文gӞ抛出该异常?/p>

java.lang.CloneNotSupportedException

不支持克隆异常。当没有实现Cloneable接口或者不支持克隆Ҏ?调用其clone()Ҏ则抛异常?/p>

java.lang.EnumConstantNotPresentException

枚D帔R不存在异常。当应用试图通过名称和枚丄型访问一个枚丑֯象,但该枚D对象q不包含帔RӞ抛出该异常?/p>

java.lang.Exception

根异常。用以描q应用程序希望捕L情况?/p>

java.lang.IllegalAccessException

q法的访问异常。当应用试图通过反射方式创徏某个cȝ实例、访问该cd性、调用该cL法,而当时又无法讉Kcȝ、属性的、方法的或构造方法的定义时抛异常?/p>

java.lang.IllegalMonitorStateException

q法的监控状态异常。当某个U程试图{待一个自己ƈ不拥有的对象QOQ的监控器或者通知其他U程{待该对象(OQ的监控器时Q抛异常?/p>

java.lang.IllegalStateException

q法的状态异常。当在Java环境和应用尚未处于某个方法的合法调用状态,而调用了该方法时Q抛异常?/p>

java.lang.IllegalThreadStateException

q法的线E状态异常。当县城未处于某个Ҏ的合法调用状态,而调用了该方法时Q抛出异常?/p>

java.lang.IndexOutOfBoundsException

索引界异常。当讉K某个序列的烦引值小?或大于等于序列大时Q抛异常?/p>

java.lang.InstantiationException

实例化异常。当试图通过newInstance()Ҏ创徏某个cȝ实例Q而该cL一个抽象类或接口时Q抛异常?/p>

java.lang.InterruptedException

被中止异常。当某个U程处于长时间的{待、休眠或其他暂停状态,而此时其他的U程通过Thread的interruptҎl止该线E时抛出该异常?/p>

java.lang.NegativeArraySizeException

数组大小值异常。当使用负数大小值创建数l时抛出该异常?/p>

java.lang.NoSuchFieldException

属性不存在异常。当讉K某个cȝ不存在的属性时抛出该异常?/p>

java.lang.NoSuchMethodException

Ҏ不存在异常。当讉K某个cȝ不存在的Ҏ时抛异常?/p>

java.lang.NullPointerException

I指针异常。当应用试图在要求用对象的地方使用了nullӞ抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计null对象的长度、用throw语句抛出null{等?/p>

java.lang.NumberFormatException

数字格式异常。当试图一个String转换为指定的数字cdQ而该字符串确不满x字类型要求的格式Ӟ抛出该异常?/p>

java.lang.RuntimeException

q行时异常。是所有Java虚拟机正常操作期间可以被抛出的异常的父类?/p>

java.lang.SecurityException

安全异常。由安全理器抛出,用于指示q反安全情况的异常?/p>

java.lang.StringIndexOutOfBoundsException

字符串烦引越界异常。当使用索引D问某个字W串中的字符Q而该索引值小?或大于等于序列大时Q抛异常?/p>

java.lang.TypeNotPresentException

cd不存在异常。当应用试图以某个类型名U的字符串表达方式访问该cdQ但是根据给定的名称又找不到该类型是抛出该异常。该异常与ClassNotFoundException的区别在于该异常是uncheckedQ不被检查)异常Q而ClassNotFoundException是checkedQ被查)异常?/p>

java.lang.UnsupportedOperationException

不支持的Ҏ异常。指明请求的Ҏ不被支持情况的异常?/p>

异常
javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login Q?Login是你的action名字Q?nbsp; 

可能原因
action没有再struts-config.xml 中定义,或没有找到匹配的actionQ例如在JSP文g中?<html:form action="Login.do".表单提交给Login.do处理Q如果出Cq异常,h看struts-config.xml中的定义部分Q有时可能是打错了字W或者是某些不符合规则,可以使用strutsconsole工具来检查?br /> -----------------------------------------------------------------------------------------------------------------
异常
org.apache.jasper.JasperException: Cannot retrieve definition for form bean null

可能原因     
      
q个异常是因为StrutsҎstruts-config.xml中的mapping没有扑ֈaction期望的form bean。大部分的情况可能是因ؓ在form-bean中设|的name属性和action中设|的name属性不匚w所致。换句话_action和form都应该各自有一个name属性,q且要精匹配,包括大小写。这个错误当没有name属性和action兌时也会发生,如果没有在action中指定name属性,那么没有name属性和action相关联。当然当action制作某些控制Ӟ譬如Ҏ参数D转到相应的jsp面Q而不是处理表单数据,q是׃用name属性,q也是action的用方法之一?br /> -----------------------------------------------------------------------------------------------------------------
异常
No action instance for path /xxxx could be created

可能原因
特别提示Q因为有很多中情况会Dq个错误的发生,所以推荐大家调高你的web服务器的日志/调试U别Q这样可以从更多的信息中看到潜在的、在试图创徏actioncL发生的错误,q个actioncM已经在struts-config.xml中设|了兌Q即d?lt;action>标签Q?/p>

在struts-config.xml中通过action标签的class属性指定的actioncM能被扑ֈ有很多种原因Q例如:定位~译后的.class文gp|。Failure to place compiled .class file for the action in the classpath (在web开发中Qclass的的位置在r WEB-INF/classesQ所以你的action class必须要在q个目录下。例如你的actioncM于WEB-INF/classes/action/Login.class,那么在struts-config.xml中设|action的属性type时就是action.Login).
拼写错误Q这个也时有发生Qƈ且不易找刎ͼ特别注意W一个字母的大小写和包的名称?
-----------------------------------------------------------------------------------------------------------------
异常
javax.servlet.jsp.JspException: No getter method for property username of bean org.apache.struts.taglib.html.BEAN

可能原因
没有位form bean中的某个变量定义getter Ҏ

q个错误主要发生在表单提交的FormBean中,用struts标记<html:text property=”username”>Ӟ在FormBean中必L一个getUsername()Ҏ。注意字?#8220;U”?br /> -----------------------------------------------------------------------------------------------------------------
异常
java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm

可能原因
q个错误主要发生在在classpath中找不到相应的Java .class文g。如果这个错误发生在web应用E序的运行时Q主要是因ؓ指定的class文g不在web server的classpath中(/WEB-INF/classes ?/WEB-INF/libQ。在上面的错误中Q原因是找不到ActionFormcR?br /> -----------------------------------------------------------------------------------------------------------------
异常
javax.servlet.jsp.JspException: Exception creating bean of class org.apache.struts.action.ActionForm: {1}

可能原因
Instantiating Struts-provided ActionForm class directly instead of instantiating a class derived off ActionForm. This mightoccur implicitly if you specify that a form-bean is this Struts ActionForm class rather than specifying a child of this classfor the form-bean.

Not associating an ActionForm-descended class with an action can also lead to this error.
-----------------------------------------------------------------------------------------------------------------
异常
javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection

可能原因
不是标识Struts actionServlet?lt;servlet>标记是映射.do扩展名的<sevlet-mapping>标记或者两者都没有在web.xml中声明?/p>

在struts-config.xml中的打字或者拼写错误也可导致这个异常的发生。例如缺一个标记的关闭W号/>。最好用struts console工具查一下?/p>

另外Qload-on-startup必须在web.xml中声明,q要么是一个空标记Q要么指定一个数|q个数值用来表servletq行的优先Q数D大优先񔭑低?/p>

q有一个和使用load-on-startup有关的是使用Struts预编译JSP文g时也可能Dq个异常?br /> -----------------------------------------------------------------------------------------------------------------
异常
java.lang.NullPointerException at org.apache.struts.util.RequestUtils.forwardURL(RequestUtils.java:1223)

可能原因
在struts-config.xml中的forward元素~少path属性。例如应该是如下形式Q?br /> <forward name="userhome" path="/user/userhome.jsp"/>
-----------------------------------------------------------------------------------------------------------------
异常
javax.servlet.jsp.JspException: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope


 

Probable Causes
试图在Struts的form标记外用form的子元素。这常常发生在你?lt;/html:form>后面使用Struts的html标记。另外要注意可能你不l意使用的无M的标讎ͼ?lt;html:form … />Q这样web 服务器解析时当作一个无M的标讎ͼ随后使用的所?lt;html>标记都被认ؓ是在q个标记之外的,如又使用?lt;html:text property=”id”>q有是在用taglib引入HTML标记库时Q你使用的prefix的g是html?br /> -----------------------------------------------------------------------------------------------------------------
异常
javax.servlet.jsp.JspException: Missing message for key xx.xx.xx

Probable Causes
q个key的值对没有在资源文件ApplicationResources.properties中定义。如果你使用eclipse时经常碰到这L情况Q当目重新~译Ӟeclipse会自动将classes目录下的资源文g删除?/p>

资源文gApplicationResources.properties 不在classpath中应资源文件放?WEB-INF/classes 目录下,当然要在struts-config.xml中定?
-----------------------------------------------------------------------------------------------------------------
异常
Cannot find message resources under key org.apache.struts.action.MESSAGE

可能原因
很显Ӟq个错误是发生在使用资源文gӞ而Struts没有扑ֈ资源文g?/p>

Implicitly trying to use message resources that are not available (such as using empty html:options tag instead of specifyingthe options in its body -- this assumes options are specified in ApplicationResources.properties file)

XML parser issues -- too many, too few, incorrect/incompatible versions
-----------------------------------------------------------------------------------------------------------------
异常
Strange and seemingly random characters in HTML and on screen, but not in original JSP or servlet.

可能原因
混和使用Struts的html:form标记和标准的HTML标记不正?/p>

使用的编码样式在本页中不支持?br /> -----------------------------------------------------------------------------------------------------------------
异常
"Document contained no data" in Netscape

No data rendered (completely empty) page in Microsoft Internet Explorer

可能原因
使用一个Action的派生类而没有实现perform()Ҏ或execute()Ҏ。在Struts1.0中实现的是perform()ҎQ在Struts1.1中实现的是execute()ҎQ但Struts1.1向后兼容perform()Ҏ。但你用Struts1.1创徏一个Action的派生类Qƈ且实Cexecute()ҎQ而你在Struts1.0中运行的话,׃得到"Document contained nodata" error message in Netscape or a completely empty (no HTML whatsoever) page rendered in Microsoft Internet Explorer.”的错误信息?/p>

---------------------------------------------------------------------------------------------------------------------------
异常
ServletException: BeanUtils.populate
解决Ҏ
在用Struts上传文g?遇到了javax.servlet.ServletException: BeanUtils.populate异常?br /> 我的ActionServletq没有用到BeanUtilsq些工具cR后来仔l检查代码发现是在jsp文g里的form忘了加enctype=&quot;multipart/form-data&quot; 了。所以写E序遇到错误或异常应该从多方面考虑问题存在的可能性,惛_pȝ提示信息以外的东ѝ?br /> ----------------------------------------------------------------------------------------------------------------------------
1. 定义Action? 如果指定了name, 那么必须要定义一个与它同名的FormBean才能q行form映射.2. 如果定义Action? 提交面时出?"No input attribute for mapping path..." 错误, 则需要在其input属性中定义转向的页?3. 如果插入新的数据时出?"Batch update row count wrong:..." 错误, 则说明XXX.hbm.xml中指定的key的类型ؓ原始cd(int, long),因ؓq种cd会自动分配? 而这个值往往会让pȝ认ؓ已经存在该记? 正确的方法是使用java.lang.Integer或java.lang.Long对象.4. 如果插入数据时出?"argument type mismatch" 错误, 可能是你使用了Date{特D对? 因ؓstruts不能自动从String型{换成Date?所? 你需要在Action中手动把String型{换成Date?5. Hibernate? Query的iterator()比list()Ҏ快很?6. 如果出现 "equal symbol expected" 错误, 说明你的strtus标签中包含另一个标{或者变? 例如:
<html:select property="test" onchange="<%=test%>"/>
或?br /> <html:hidden property="test" value="<bean:write name="t" property="p"/>"/>
q样的情?..
---------------------------------------------------------------------------------------------------------------------------
错误QException in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update原因与解冻I      因ؓHibernate ToolsQ或者Eclipse本n的Database ExplorerQ生?.hbn.xml工具中包含有catalog="***"Q?表示数据库名Uͼq样的属?该属性删除就可以?br /> ---------------------------------------------------------------------------------------------------------------------------
错误Qorg.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations)
原因与解冻I
Ҏ1 删除Set方的cascade
Ҏ2 解决兌关系后,再删?br /> Ҏ3 在many-to-one方增加cascade 但g能是none
最后一招:
查一下hashCode equals是否使用了id作ؓ唯一标示的选项了;我用uuid.hex时是没有问题的;但是用了nativeQ就不行了,怎么办?删除啊!
----------------------------------------------------------------------------------------------------------------------------
问题Q今天用Tomcat 5.5.12Q发现原来很好用的系l不能用了,反复试发现面中不能包?taglibQ否则会出现以下提示QHTTP Status 500 -type Exception reportMessage description The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: /index.jsp(1,1) Unable to read TLD "META-INF/tlds/struts-bean.tld" from JAR file"file:*****/WEB-INF/lib/struts.jar":原因Q更C工程用的lib文g夹下的jarQ发布时也发布了servlet.jar和jsp-api.jar。解冻I把jsp-api.jar删除p册个问题了?----------------------------------------------------------------------------------------------------------------------------
错误Q?java.lang.NullPointerException
原因Q?发现 dao 实例?manage 实例{需要注入的东西没有被注入(俗称I指针异常)解决Q这个时候,你应该查看日志文Ӟ默认是应用服务器?log 文gQ比?Tomcat 是 [Tomcat 安装目录 ]/logs Q你会发现提CZQ可能是Qorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sf' defined in ServletContextresource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception isorg.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xmlorg.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xml……………………….Caused by: java.io.FileNotFoundException: src\hibernate.cfg.xml可能是:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined inServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception isorg.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not foundorg.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not found然后你就知道原因是因为配|文件的解析Z错误Q这个通过 Web 面是看不出来的。更多的是持久化影射文g出的错误Q导致了没有被解析;当然你需要的功能无法用了?br /> ----------------------------------------------------------------------------------------------------------------------------
错误QStandardWrapperValve[action]: Servlet.service() for servlet action threw exception
javax.servlet.jsp.JspException: Cannot retrieve mapping for action /settlementTypeManage
或者:      type Status report      message Servlet action is not available      description The requested resource (Servlet action is not available) is not available.
原因Q???br /> ----------------------------------------------------------------------------------------------------------------------------
错误StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exceptionjava.lang.ClassNotFoundException: org.apache.struts.taglib.bean.CookieTei界面错误具体描述Q?br /> org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib.bean.CookieTei
      原因与解冻I    <Ҏ一>你的“html:”开头的标签没有攑֜一?lt;html:form>?nbsp;      <Ҏ?gt;重新启动你的应用服务器,自动没有这个问?br />



阿伟 2008-08-26 10:06 发表评论
]]>
qMM与Java?3U设计模?/title><link>http://www.tkk7.com/zilong/archive/2008/08/18/222886.html</link><dc:creator>阿伟</dc:creator><author>阿伟</author><pubDate>Mon, 18 Aug 2008 14:17:00 GMT</pubDate><guid>http://www.tkk7.com/zilong/archive/2008/08/18/222886.html</guid><wfw:comment>http://www.tkk7.com/zilong/comments/222886.html</wfw:comment><comments>http://www.tkk7.com/zilong/archive/2008/08/18/222886.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/zilong/comments/commentRss/222886.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/zilong/services/trackbacks/222886.html</trackback:ping><description><![CDATA[转自Qhttp://freeman983.javaeye.com/blog/215073<br /> <p><strong>创徏型模?<br /> </strong>  1、FACTORY―追MM不了请吃饭了,麦当劳的鸡翅和肯德基的鸡都是MM爱吃的东西,虽然口味有所不同Q但不管你带MM去麦当劳或肯德基Q只向服务员说“来四个鸡?#8221;p了。麦当劳和肯德基是生鸡翅的Factory <br />   <br />   工厂模式Q客L和工厂类分开。消费者Q何时候需要某U品,只需向工厂请求即可。消费者无M改就可以接纳C品。缺Ҏ当品修ҎQ工厂类也要做相应的修改。如Q如何创建及如何向客L提供?<br />   <br />   2、BUILDER―MM最爱听的就?#8220;我爱?#8221;q句话了Q见C同地方的MM,要能够用她们的方a跟她说这句话哦,我有一个多U语a译机,上面每种语言都有一个按键,见到MM我只要按对应的键Q它p够用相应的语a说出“我爱?#8221;q句话了Q国外的MM也可以轻松搞掂,q就是我?#8220;我爱?#8221;builder。(q一定比军在伊拉克用的译机好卖) <br />   <br />   建造模式:品的内部表象和品的生成q程分割开来,从而一个徏造过E生成具有不同的内部表象的品对象。徏造模式得品内部表象可以独立的变化Q客户不必知道品内部组成的l节。徏造模式可以强制实行一U分步骤q行的徏造过E?<br />   <br />   3、FACTORY METHOD―请MM去麦当劳吃汉堡,不同的MM有不同的口味Q要每个都记住是一件烦人的事情Q我一般采用Factory Method模式Q带着MM到服务员那儿Q说“要一个汉?#8221;Q具体要什么样的汉堡呢Q让MM直接跟服务员说就行了?<br />   <br />   工厂Ҏ模式Q核心工厂类不再负责所有品的创徏Q而是具体创建的工作交给子类dQ成Z个抽象工厂角Ԍ仅负责给出具体工厂类必须实现的接口,而不接触哪一个品类应当被实例化q种l节?<br />   <br />   4、PROTOTYPE―跟MM用QQ聊天Q一定要说些深情的话语了Q我搜集了好多肉ȝ情话Q需要时只要copy出来攑ֈQQ里面p了,q就是我的情话prototype了。(100块钱一份,你要不要Q?<br />   <br />   原始模型模式Q通过l出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的Ҏ创徏出更多同cd的对象。原始模型模式允许动态的增加或减品类Q品类不需要非得有M事先定的等U结构,原始模型模式适用于Q何的{l构。缺Ҏ每一个类都必配备一个克隆方法?<br />   <br />   5、SINGLETON―俺?个漂亮的老婆Q她们的老公都是我,我就是我们家里的老公SigletonQ她们只要说?#8220;老公”Q都是指的同一个hQ那是?刚才做了个梦啦,哪有q么好的? <br />   <br />   单例模式Q单例模式确保某一个类只有一个实例,而且自行实例化ƈ向整个系l提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用?<br />   <br />   <strong>l构型模?/strong><br />   6、ADAPTER―在朋友聚会上碰C一个美女SarahQ从香港来的Q可我不会说_语Q她不会说普通话Q只好求助于我的朋友kent了,他作为我和Sarah之间的AdapterQ让我和Sarah可以怺交谈?也不知道他会不会耍我) <br />   <br />   适配器(变压器)模式Q把一个类的接口变换成客户端所期待的另一U接口,从而原本因接口原因不匚w而无法一起工作的两个c能够一起工作。适配cd以根据参数返q一个合适的实例l客L?<br />   <br />   7、BRIDGE―早上碰到MMQ要说早上好Q晚上碰到MMQ要说晚上好Q碰到MMI了件新衣服Q要说你的衣服好漂亮哦,到MM新做的发型,要说你的头发好漂亮哦。不要问?#8220;早上到MM新做了个发型怎么?#8221;q种问题Q自qBRIDGEl合一下不p?<br />   <br />   桥梁模式Q将抽象化与实现化脱耦,使得二者可以独立的变化Q也是说将他们之间的强兌变成弱关联,也就是指在一个Y件系l的抽象化和实现化之间用组?聚合关系而不是承关p,从而两者可以独立的变化?<br />   <br />   8、COMPOSITE―Mary今天q生日?#8220;我过生日Q你要送我一件礼物?#8221;“嗯,好吧Q去商店Q你自己挑?#8221;“qgT恤挺漂亮Q买Q这条裙子好看,乎ͼq个包也不错Q买?#8221;“喂,C三g了呀Q我只答应送一件礼物的哦?#8221;“什么呀QT恤加裙子加包包,正好配成一套呀Q小姐,ȝ你包h?#8221;“……”QMM都会用Composite模式了,你会了没有? <br />   <br />   合成模式Q合成模式将对象l织到树l构中,可以用来描述整体与部分的关系。合成模式就是一个处理对象的树结构的模式。合成模式把部分与整体的关系用树l构表示出来。合成模式得客L把一个个单独的成分对象和׃们复合而成的合成对象同{看待?<br />   <br />   9、DECORATOR―Maryq完轮到Sarlyq生日,q是不要叫她自己挑了Q不然这个月伙食费肯定玩完,拿出我去q在华山上照的照片Q在背面写上“最好的的礼物,是׃的Fita”Q再到街上礼品店C个像框(卖礼品的MM也很漂亮哦)Q再N壁搞术设计的Mike设计了一个漂亮的盒子装v?#8230;…Q我们都是DecoratorQ最l都在修饰我q个人呀Q怎么P看懂了吗Q?<br />   <br />   装饰模式Q装饰模式以对客L透明的方式扩展对象的功能Q是l承关系的一个替代方案,提供比承更多的灉|性。动态给一个对象增加功能,q些功能可以再动态的撤消。增加由一些基本功能的排列l合而生的非常大量的功能?<br />   <br />   10、FACADE―我有一个专业的Nikon相机Q我喜Ƣ自己手动调光圈、快门,q样照出来的照片才专业,但MM可不懂这些,教了半天也不会。幸好相机有Facade设计模式Q把相机调整到自动Q只要对准目标按快门p了,一切由相机自动调整Q这样MM也可以用q个相机l我拍张照片了?<br />   <br />   门面模式Q外部与一个子pȝ的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系l更易于使用。每一个子pȝ只有一个门面类Q而且此门面类只有一个实例,也就是说它是一个单例模式。但整个pȝ可以有多个门面类?<br />   <br />   11、FLYWEIGHT―每天跟MM发短信,手指都篏dead了,最q买了个新手机,可以把一些常用的句子存在手机里,要用的时候,直接拿出来,在前面加上MM的名字就可以发送了Q再不用一个字一个字敲了。共享的句子是FlyweightQMM的名字就是提取出来的外部特征Q根据上下文情况使用?<br />   <br />   享元模式QFLYWEIGHT在拳L赛中指最轻量U。n元模式以׃n的方式高效的支持大量的细_度对象。n元模式能做到׃n的关键是区分内蕴状态和外蕴状态。内蕴状态存储在享元内部Q不会随环境的改变而有所不同。外蕴状态是随环境的改变而改变的。外蕴状态不能媄响内蕴状态,它们是相互独立的。将可以׃n的状态和不可以共享的状态从常规cM区分开来,不可以׃n的状态从c里剔除出去。客L不可以直接创׃n的对象,而应当用一个工厂对象负责创׃n的对象。n元模式大q度的降低内存中对象的数量?<br />   <br />   12、PROXY―跟MM在网上聊天,一开头L“hi,你好”,“你从哪儿来呀Q?#8221;“你多大了Q?#8221;“w高多少呀Q?#8221;q些话,真烦人,写个E序做ؓ我的Proxy吧,凡是接收到这些话都设|好了自动的回答Q接收到其他的话时再通知我回{,怎么P酷吧?<br />   <br />   代理模式Q代理模式给某一个对象提供一个代理对象,q由代理对象控制Ҏ对象的引用。代理就是一个h或一个机构代表另一个h或者一个机构采取行动。某些情况下Q客户不x者不能够直接引用一个对象,代理对象可以在客户和目标对象直接起到中介的作用。客L分L不出代理主题对象与真实主题对象。代理模式可以ƈ不知道真正的被代理对象,而仅仅持有一个被代理对象的接口,q时候代理对象不能够创徏被代理对象,被代理对象必Lpȝ的其他角色代为创建ƈ传入?<br />   <br />   <strong> 行ؓ模式 </strong><br />   13、CHAIN OF RESPONSIBLEITY―晚上去上英语课Qؓ了好开溜坐C最后一排,哇,前面坐了好几个漂亮的MM哎,扑ּU条Q写?#8220;Hi,可以做我的女朋友吗?如果不愿意请向前?#8221;Q纸条就一个接一个的传上MQ糟p,传到W一排的MM把纸条传l老师了,听说是个老处奛_Q快? <br />   <br />   责Q链模式:在责任链模式中,很多对象由每一个对象对其下家的引用而接 <br />   <br />   h形成一条链。请求在q个链上传递,直到链上的某一个对象决定处理此h。客户ƈ不知道链上的哪一个对象最l处理这个请求,pȝ可以在不影响客户端的情况下动态的重新l织铑֒分配责Q。处理者有两个选择Q承担责L者把责Q推给下家。一个请求可以最l不被Q何接收端对象所接受?<br />   <br />   14、COMMAND―俺有一个MM安得特别严,没法见面Q只好借助于她弟弟在我们俩之间传送信息,她对我有什么指C,写一张纸条让她弟弟带l我。这不,她弟弟又传送过来一个COMMANDQؓ了感谢他Q我请他吃了杂酱面Q哪知道他说Q?#8220;我同时给我姐姐三个男朋友送COMMANDQ就C最气Q才h吃面?#8221;Q?<br />   <br />   命o模式Q命令模式把一个请求或者操作封装到一个对象中。命令模式把发出命o的责d执行命o的责d割开Q委z不同的对象。命令模式允许请求的一方和发送的一方独立开来,使得h的一方不必知道接收请求的一方的接口Q更不必知道h是怎么被接Ӟ以及操作是否执行Q何时被执行以及是怎么被执行的。系l支持命令的撤消?<br />   <br />   15、INTERPRETER―俺有一个《MM真经》,上面有各UMM的攻略,比如说去吃西的步骤、去看电qҎ{等Q跟MMU会Ӟ只要做一个InterpreterQ照着上面的脚本执行就可以了?<br />   <br />   解释器模式:l定一个语a后,解释器模式可以定义出其文法的一U表C,q同时提供一个解释器。客L可以使用q个解释器来解释q个语言中的句子。解释器模式描q怎样在有了一个简单的文法后,使用模式设计解释q些语句。在解释器模式里面提到的语言是指M解释器对象能够解释的Ml合.</p> <img src ="http://www.tkk7.com/zilong/aggbug/222886.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/zilong/" target="_blank">阿伟</a> 2008-08-18 22:17 <a href="http://www.tkk7.com/zilong/archive/2008/08/18/222886.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL中的LIMIT解析http://www.tkk7.com/zilong/archive/2008/06/02/205356.html阿伟阿伟Mon, 02 Jun 2008 08:26:00 GMThttp://www.tkk7.com/zilong/archive/2008/06/02/205356.htmlhttp://www.tkk7.com/zilong/comments/205356.htmlhttp://www.tkk7.com/zilong/archive/2008/06/02/205356.html#Feedback0http://www.tkk7.com/zilong/comments/commentRss/205356.htmlhttp://www.tkk7.com/zilong/services/trackbacks/205356.html使用Limit参数优化MySQL查询
转自:http://www.tkk7.com/chenpengyi/archive/2006/07/29/60679.html

我们在做一些查询的时候d望能避免数据库引擎做全表扫描Q因为全表扫描时间长Q而且其中大部分扫描对客户端而言是没有意义的。那么在 MySQL 中有那些方式是可以避免全表扫面的呢?除了我们大家很熟悉的通过使用索引列或分区{方式来q行查询的优化之外还有那些呢Q?/span>

前些天看了一个老外写的E序Q在 MySQL 查询中用了很多 Limit 关键字,q就让我很感兴趣了,因ؓ在我印象中, Limit 关键字似乎更多被使用 MySQL 数据库的E序员用来做查询分页Q当然这也是一U很好的查询优化Q,那在q里举个例子Q假设我们需要一个分늚查询 QOracle中一般来说都是用以下 SQL 句子实现Q?/span>

SELECT * FROM

( SELECT a1.*, rownum rownum_

FROM testtable a1

WHERE rownum > 20)

 WHERE rownum_ <= 1000

       q个语句p查询?/span> testtable 表中?/span> 20 ?/span> 1000 记录Q而且q需要嵌套查询,效率不会太高Q看?/span> MySQL 的实玎ͼ

       SELECT * FROM testtable a1 limit 20,980;

       q样pq回 testtable 表中?/span> 21 条到Q?/span> 20 Q?/span> 980 Q) 1000 条的记录?/span>

       实现语法实单,但如果要说这里两?/span> SQL 语句的效率,那就很难做比较了Q因为在 MySQL ?/span> Limit 选项有多U不同的解释方式Q不同方式下的速度差异是很大的Q因此我们不能从q语句的z程度就说谁的效率高?/span>

       不过对程序员来说Q够单就好,因ؓl护成本低,呵呵?/span>

       下面讲讲q个 Limit 的语法吧Q?/span>

       SELECT ……. --Select 语句的其他参?/span>

[LIMIT {[offset,] row_count | row_count OFFSET offset}]

q里 offset 是偏U量Q这个偏U量的v始地址?/span> 0 Q而不?/span> 1 Q这点很Ҏ搞错的)֐思义是d起始点的位置Q?/span> row-count 也是很简单的Q就是返回的记录的数量限制?/span>

Eg. SELECT * FROM testtable a limit 10,20 where ….

q样p使结果返?/span> 10 行以后(包括 10 行自w)的符?/span> where 条g?/span> 20 条记录?/span>

那么如果没有U束条gp?/span> 10 ?/span> 29 行的记录?/span>

       那这跟避免全表扫描有什么关pdQ?/span> 下面?/span> MySQL 手册?/span> Limit 参数优化扫描的一些说明:

在一些情况中Q当你?/span> LIMIT 选项而不是?/span> HAVING Ӟ MySQL 以不同方式处理查询?/span>

l          如果你用 LIMIT 只选择其中一部分行,?/span> MySQL 一般会做完整的表扫描时Q但在某些情况下会用烦引(?/span> ipart 有关Q?/span>

l          如果你将 LIMIT n ?/span> ORDER BY 同时使用Q在 MySQL 扑ֈ了第一个符合条件的记录后,结束排序而不是排序整个表?/span>

l          ?/span> LIMIT n ?/span> DISTINCT 同时使用Ӟ MySQL 在找C个记录后停止查询?/span>

l          某些情况下, GROUP BY 能通过序d?/span> ( 或在键上做排?/span> ) 来解冻Iq然后计摘要直到键值改变。在q种情况下, LIMIT n 不计算M不必要的 GROUP ?/span>

l          ?/span> MySQL 完成发送第 n 行到客户端,它将攑ּ余下的查询?/span>

l          ?/span> LIMIT 0 选项L快速返回一个空记录。这Ҏ查查询ƈ且得到结果列的列cd是有用的?/span>

l          临时表的大小使用 LIMIT # 计算需要多空间来解决查询?br />

?在MySQL查询l果集中得到记录行号(转自:http://www.zeali.net/entry/452)

如果需要在查询语句q回的列中包含一列表C条记录在整个l果集中的行P ISO SQL:2003 标准提出的方法是提供 ROW_NUMBER() / RANK() 函数?Oracle 中可以用标准方法(8i版本以上Q,也可以用非标准?ROWNUM Q?MS SQL Server 则在 2005 版本中提供了 ROW_NUMBER() 函数Q但?MySQL 中似乎还没有q样的系l自带功能。虽?LIMIT 可以很方便的对返回的l果集数量和位置q行qoQ但qo出来的记录的行号却没办法?SELECT 到?/span>据说 MySQL 是早想增加q个功能了,但我是还没找到?/span>

解决Ҏ是通过预定义用户变?/span>来实玎ͼ

set @mycnt = 0;
select (@mycnt := @mycnt + 1) as ROWNUM , othercol from tblname order by othercol;

q样查询出来的结果集?ROWNUM ׃存了行编号信息。这个行~号信息的某U用途在于当你需要根据需要对数据按照某种规则排序q取出排序之后的某一行数据,q且希望知道q行数据在之前排序中的位|时q得着了。比如:

set @mycnt = 0;
select * from (
    select (@mycnt := @mycnt + 1) as ROWNUM , othercol
     from tblname order by othercol
) as A where othercol=OneKeyID;

当然你也可以通过创徏临时表的Ҏ把查询结果写到某个拥?auto_increment 字段的时表中再做查询,但考虑C时表?MySQL master / slave 模式下可能生的问题Q用q样临时用户定义变量的方式来计算查询l果集每一行对应的行号q是更ؓz?-- 除非你愿意在 PHP 或其他语a脚本中对q回的整个结果集再作处理?/span>




阿伟 2008-06-02 16:26 发表评论
]]>
WebSphere5.1下发布XFire的问题解?/title><link>http://www.tkk7.com/zilong/archive/2008/05/14/200424.html</link><dc:creator>阿伟</dc:creator><author>阿伟</author><pubDate>Wed, 14 May 2008 08:36:00 GMT</pubDate><guid>http://www.tkk7.com/zilong/archive/2008/05/14/200424.html</guid><wfw:comment>http://www.tkk7.com/zilong/comments/200424.html</wfw:comment><comments>http://www.tkk7.com/zilong/archive/2008/05/14/200424.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/zilong/comments/commentRss/200424.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/zilong/services/trackbacks/200424.html</trackback:ping><description><![CDATA[  <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开发环?/span><span lang="EN-US">:</span></p> <p class="MsoNormal"><span lang="EN-US">Eclipse3.2</span></p> <p class="MsoNormal"><span lang="EN-US">MyEclipse5.5.1GA</span></p> <p class="MsoNormal"><span lang="EN-US">JDK1.5</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">创徏一?/span><span lang="EN-US">WEB Service</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">工程</span><span lang="EN-US">XFire</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q按照网上的实例开发了一个简单的</span><span lang="EN-US">HelloWorld</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">E序Q发布到</span><span lang="EN-US">TOMCAT</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一?/span><span lang="EN-US">OK</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">客户端用</span><span lang="EN-US">XFire</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">插g开发(比较方便Q,需要先下蝲插gQ步骤如下:</span></p> <p class="MsoNormal" style="background: white; word-break: break-all; line-height: 150%; tab-stops: 21.75pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">打开</span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">Eclipse</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">?/span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">Help</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">菜单Q选择</span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">”Software Updates”</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">Q然后再选择</span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">”Find and Install.”<br /> </span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">选择</span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">"Search for new features to install"</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">Q然后点?/span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">Next<br /> </span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">选择</span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">"Create New Remote Site"</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">Q?/span><span style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt"> </span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">?/span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">name</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">中输?/span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">"XFire"</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">Q在</span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">eclipse update site</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">中输?/span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="background: white; word-break: break-all; line-height: 150%; tab-stops: 21.75pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt"><a ><span style="color: windowtext">http://dist.codehaus.org/xfire/update/</span></a><br /> </span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">选择</span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">OK<br /> </span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">选择</span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">Finish</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">?/span><span lang="EN-US" style="color: black"><o:p></o:p></span></p> <p class="MsoNormal" style="background: white; word-break: break-all; line-height: 150%; tab-stops: 21.75pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">2</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">、新Z?/span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">java project</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">。命名ؓ“</span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">Client</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">”Q其他默认,</span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">finish</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">?/span><span lang="EN-US" style="color: black"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="color: black; mso-bidi-font-size: 10.0pt">3</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">?/span><span lang="EN-US" style="color: black; mso-bidi-font-size: 10.0pt">File->New->Other </span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">Q选择“</span><span lang="EN-US" style="color: black; mso-bidi-font-size: 10.0pt">XFire”</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">文g夹下?#8220;</span><span lang="EN-US" style="color: black; mso-bidi-font-size: 10.0pt">Code generation from WSDL document”</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">Q打开代码生成向导Q?/span><span lang="EN-US" style="color: black; mso-bidi-font-size: 10.0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="background: white; word-break: break-all; line-height: 150%; tab-stops: 21.75pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">WSDL</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">的地址栏填?/span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt"><a href="http://localhost:8080/WSProject/services/HelloService?wsdl"><span style="color: #1d58d1">http://localhost:8080/XFire/services/HelloWorldService?wsdl</span></a></span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">Q?/span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">Output directory</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">栏中Ҏ览按钮,选择我们刚才新徏的项?/span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">Client</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">Q这两项是必填的。可选项中,</span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">package</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">一栏可以选已l存在的包名Q如果不填这一,代码生成器会?/span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">wsdl</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">目标命名I间的基上创Z个?/span><span lang="EN-US" style="color: black"><o:p></o:p></span></p> <p class="MsoNormal" style="background: white; word-break: break-all; line-height: 150%; tab-stops: 21.75pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">   </span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">完成后,可以看到目中多?/span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">XFire</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">cdQ还?/span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">package</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">下面的生成的一些类。此时要保证</span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">IDE</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">?/span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">Tomcat</span><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">服务器是打开的?/span><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt"><br />   <strong style="mso-bidi-font-weight: normal">  </strong></span><strong style="mso-bidi-font-weight: normal"><span style="background: yellow; color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt; mso-highlight: yellow">此时Q在调用服务之前Q还有一个重要的步骤Q从</span></strong><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="background: yellow; color: black; line-height: 150%; mso-bidi-font-size: 10.0pt; mso-highlight: yellow">XFireProject</span></strong><strong style="mso-bidi-font-weight: normal"><span style="background: yellow; color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt; mso-highlight: yellow">目的右键菜单里调出</span></strong><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="background: yellow; color: black; line-height: 150%; mso-bidi-font-size: 10.0pt; mso-highlight: yellow">Properties</span></strong><strong style="mso-bidi-font-weight: normal"><span style="background: yellow; color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt; mso-highlight: yellow">配置H口Q选中左面一栏中?/span></strong><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="background: yellow; color: black; line-height: 150%; mso-bidi-font-size: 10.0pt; mso-highlight: yellow">XFire</span></strong><strong style="mso-bidi-font-weight: normal"><span style="background: yellow; color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt; mso-highlight: yellow">,右面会列出所有与</span></strong><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="background: yellow; color: black; line-height: 150%; mso-bidi-font-size: 10.0pt; mso-highlight: yellow">XFire</span></strong><strong style="mso-bidi-font-weight: normal"><span style="background: yellow; color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt; mso-highlight: yellow">q行有关的类库,按列表中所C的Q选中一些类库,q些cd在调用本服务时是必须的?br /> </span></strong><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt"><o:p></o:p></span></strong></p> <p class="MsoNormal" style="background: white; word-break: break-all; line-height: 150%; tab-stops: 21.75pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">Commons Codec(commons-codec-1.3.jar)<o:p></o:p></span></strong></p> <p class="MsoNormal" style="background: white; word-break: break-all; line-height: 150%; tab-stops: 21.75pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">Commons HttpClient(commons-httpclient-3.0.jar)<o:p></o:p></span></strong></p> <p class="MsoNormal" style="background: white; word-break: break-all; line-height: 150%; tab-stops: 21.75pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong style="mso-bidi-font-weight: normal"><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">如果~少q两?/span></strong><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">JAR</span></strong><strong style="mso-bidi-font-weight: normal"><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">文gQ客L在调?/span></strong><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt">WEB </span></strong><strong style="mso-bidi-font-weight: normal"><span style="color: black; line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">服务时会出错?/span></strong><span lang="EN-US" style="color: black"><o:p></o:p></span></p> <p class="MsoNormal" style="background: white; word-break: break-all; line-height: 150%; tab-stops: 21.75pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="color: black; line-height: 150%; mso-bidi-font-size: 10.0pt"><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><span lang="EN-US" style="font-size: 10.5pt; color: black; font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <span lang="EN-US" style="font-size: 10.5pt; color: black; font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <span lang="EN-US" style="font-size: 10.5pt; color: black; font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> </v:shapetype></span></v:shapetype></span></v:shapetype></span></span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">所有的配置都已l完成,最后就是编写代码完成调用?/span><span lang="EN-US" style="color: black; mso-bidi-font-size: 10.0pt"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="color: black; mso-bidi-font-size: 10.0pt"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">?/span><span lang="EN-US" style="color: black; mso-bidi-font-size: 10.0pt">Tomcat5.0</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">下正常发布,客户端也能正常调用。然而在发布?/span><span lang="EN-US" style="color: black; mso-bidi-font-size: 10.0pt">WebSphere5.1(base)</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">上面Ӟ出C一些列问题Q下面是问题单描qͼ只截取了</span><span lang="EN-US" style="color: black; mso-bidi-font-size: 10.0pt">LOG</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">中部分信息)以及解决q程?/span><span lang="EN-US" style="color: black; mso-bidi-font-size: 10.0pt"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="background: yellow; mso-highlight: yellow">[08-5-14 7:02:31:500 GMT] 2a29c7a6 XFireServlet<span style="mso-spacerun: yes">  </span>E org.codehaus.xfire.transport.http.XFireServlet<span style="mso-spacerun: yes">  </span>TRAS0014I: </span><span style="background: yellow; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-highlight: yellow">下列异常已记?/span><span lang="EN-US" style="background: yellow; mso-highlight: yellow"> org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'xfire.typeMappingRegistry' defined in class path resource [org/codehaus/xfire/spring/xfire.xml]: Class that bean class [org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry] depends on not found; nested exception is java.lang.NoClassDefFoundError: org/codehaus/xfire/aegis/type/DefaultTypeMappingRegistry<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="background: yellow; mso-highlight: yellow">java.lang.NoClassDefFoundError: org/codehaus/xfire/aegis/type/DefaultTypeMappingRegistry</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="background: yellow; mso-highlight: yellow">[08-5-14 7:02:31:531 GMT] 2a29c7a6 ServletInstan E SRVE0100E: </span><span style="background: yellow; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-highlight: yellow">未识别出?/span><span lang="EN-US" style="background: yellow; mso-highlight: yellow"> servlet XFireServlet </span><span style="background: yellow; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-highlight: yellow">抛出?/span><span lang="EN-US" style="background: yellow; mso-highlight: yellow"> init() </span><span style="background: yellow; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-highlight: yellow">异常Q?/span><span lang="EN-US" style="background: yellow; mso-highlight: yellow">javax.servlet.ServletException: Error initializing XFireServlet.<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="background: yellow; mso-highlight: yellow"><span style="mso-tab-count: 1">       </span>at org.codehaus.xfire.transport.http.XFireServlet.init(XFireServlet.java:52)</span></p> <p class="MsoNormal"><span lang="EN-US" style="background: yellow; mso-highlight: yellow">[08-5-14 7:02:31:531 GMT] 2a29c7a6 WebGroup<span style="mso-spacerun: yes">      </span>E SRVE0020E: </span><span style="background: yellow; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-highlight: yellow">Q?/span><span lang="EN-US" style="background: yellow; mso-highlight: yellow">Servlet </span><span style="background: yellow; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-highlight: yellow">错误Q-Q?/span><span lang="EN-US" style="background: yellow; mso-highlight: yellow">XFireServlet</span><span style="background: yellow; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-highlight: yellow">Q:无法装入</span><span lang="EN-US" style="background: yellow; mso-highlight: yellow"> servlet</span><span style="background: yellow; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-highlight: yellow">Q?/span><span lang="EN-US" style="background: yellow; mso-highlight: yellow">org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'xfire.typeMappingRegistry' defined in class path resource [org/codehaus/xfire/spring/xfire.xml]: Class that bean class [org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry] depends on not found; nested exception is java.lang.NoClassDefFoundError: org/codehaus/xfire/aegis/type/DefaultTypeMappingRegistry<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="background: yellow; mso-highlight: yellow">java.lang.NoClassDefFoundError: org/codehaus/xfire/aegis/type/DefaultTypeMappingRegistry</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="background: yellow; mso-highlight: yellow">[08-5-14 7:02:31:547 GMT] 2a29c7a6 WebGroup<span style="mso-spacerun: yes">      </span>E SRVE0026E: </span><span style="background: yellow; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-highlight: yellow">Q?/span><span lang="EN-US" style="background: yellow; mso-highlight: yellow">Servlet </span><span style="background: yellow; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-highlight: yellow">错误Q-Q?/span><span lang="EN-US" style="background: yellow; mso-highlight: yellow">XFireServlet</span><span style="background: yellow; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-highlight: yellow">Q:</span><span lang="EN-US" style="background: yellow; mso-highlight: yellow">org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'xfire.typeMappingRegistry' defined in class path resource [org/codehaus/xfire/spring/xfire.xml]: Class that bean class [org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry] depends on not found; nested exception is java.lang.NoClassDefFoundError: org/codehaus/xfire/aegis/type/DefaultTypeMappingRegistry<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="background: yellow; mso-highlight: yellow">java.lang.NoClassDefFoundError: org/codehaus/xfire/aegis/type/DefaultTypeMappingRegistry</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上述问题出现后开始在|上大肆查找资料Q中间替换过</span><span lang="EN-US">WebSphere</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span><span lang="EN-US">lib</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面的几个包Q报的错误虽然有所变化Q但仍然不能清除。最后觉得是否与</span><span lang="EN-US">JDK</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版本有关Q因为在</span><span lang="EN-US">WebSphere</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">启动日志里看?/span><span lang="EN-US">WebSphere</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用的</span><span lang="EN-US">JDK</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版本?/span><span lang="EN-US">1.4.1</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q而我所开发的</span><span lang="EN-US">XFire</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">工程?/span><span lang="EN-US">JDK1.5,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">因此军_?/span><span lang="EN-US">XFire</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">工程?/span><span lang="EN-US">JDK</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包换?/span><span lang="EN-US">1.4</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">然后?/span><span lang="EN-US">1.4</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版本重新~译Q然后导?/span><span lang="EN-US">WAR</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包重新在</span><span lang="EN-US">WebSphere</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中发布?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">先将</span><span lang="EN-US">WebSphere</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下的</span><span lang="EN-US">lib</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包恢复到原来状态(因ؓ中间替换q几个包Q重新发?/span><span lang="EN-US">1.4</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版本后,错误依旧Q好吧,开始替?/span><span lang="EN-US">WebSphere</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下的包:</span></p> <p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; tab-stops: list 18.0pt; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">1?span style="font: 7pt 'Times New Roman'">  </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">先将</span><span lang="EN-US">WebSphere</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下的</span><span lang="EN-US">lib</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包中?/span><span lang="EN-US">qname.jar</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包替换ؓ最新版本?/span></p> <p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; tab-stops: list 18.0pt; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">2?span style="font: 7pt 'Times New Roman'">  </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span><span lang="EN-US">WebSphere</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下的</span><span lang="EN-US">lib</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包中?/span><span lang="EN-US">jdom.jar</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">替换?/span><span lang="EN-US">jdom-1.0.jar.</span></p> <p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; tab-stops: list 18.0pt; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">3?span style="font: 7pt 'Times New Roman'">  </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span><span lang="EN-US">WebSphere</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下的</span><span lang="EN-US">lib</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包中?/span><span lang="EN-US">wsdl4j.jar</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包替换ؓ</span><span lang="EN-US">wsdl4j-1.5.1.jar(</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">本来替换?/span><span lang="EN-US">xfire-1.2.6</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span><span lang="EN-US">lib</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面?/span><span lang="EN-US">wsdl4j-1.6.1.jar</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q但替换完之后服务v不来了,其他版本的没试,在网上看到好像说</span><span lang="EN-US">wsdl4j-1.5.1</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">解决了之前版本的什?/span><span lang="EN-US">BUG.)</span></p> <p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; tab-stops: list 18.0pt; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">4?span style="font: 7pt 'Times New Roman'">  </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span><span lang="EN-US">WebSphere</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下的</span><span lang="EN-US">lib</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包中dQ?/span><span lang="EN-US">stax-api-1.0.1.jar</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span><span lang="EN-US">jaxen-1.1-beta-9.jar</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">两个包。(q有说需要添?/span><span lang="EN-US">stax-untils-20040917.jar,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不过好像不添加也没问题。这些包?/span><span lang="EN-US">xfire-1.2.6</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span><span lang="EN-US">lib</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面都有。)</span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">重新启动服务器,我们l于可以看到盼望已久?/span><span lang="EN-US">wsdl</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">描述面?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">然后测试客LQ注?/span><span lang="EN-US">XFire</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">插g开发客LE序好像必须使用</span><span lang="EN-US">JDK1.5</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q低版本好像不支持。(记得在工E属性里?/span><span lang="EN-US">JDK</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">换成</span><span lang="EN-US">1.5</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">后,然后?/span><span lang="EN-US">Java Compiler</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中选中“</span><span lang="EN-US">Enable project specific settings</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”Q然后在下面?#8220;</span><span lang="EN-US">Compiler compliance level</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">选中</span><span lang="EN-US">5.0</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”Q然后点</span><span lang="EN-US">Apply->ok,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">重新~译一下)Q好Q编写一个测试类Q运行就可以看到我们惌得到?/span><span lang="EN-US">HelloWorld</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">了?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">ȝQ注?/span><span lang="EN-US">JDK</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版本是否冲突。注?/span><span lang="EN-US">WebSphere</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下的</span><span lang="EN-US">lib</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的包是否和目中的包冲H以及包是否全?/span></p> <img src ="http://www.tkk7.com/zilong/aggbug/200424.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/zilong/" target="_blank">阿伟</a> 2008-05-14 16:36 <a href="http://www.tkk7.com/zilong/archive/2008/05/14/200424.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>~写properties文g的Eclipse插ghttp://www.tkk7.com/zilong/archive/2008/04/15/193076.html阿伟阿伟Tue, 15 Apr 2008 05:10:00 GMThttp://www.tkk7.com/zilong/archive/2008/04/15/193076.htmlhttp://www.tkk7.com/zilong/comments/193076.htmlhttp://www.tkk7.com/zilong/archive/2008/04/15/193076.html#Feedback2http://www.tkk7.com/zilong/comments/commentRss/193076.htmlhttp://www.tkk7.com/zilong/services/trackbacks/193076.html
1、展开Eclipse的Help菜单Q将鼠标UdSoftware Update子项Q在出现的子菜单中点击Find and InstallQ?br /> 2、在Install/Update对话框中选择Search for new features to installQ点击NextQ?br /> 3、在Install对话框中点击New Remote SiteQ?br /> 4、在New Update Site对话框的Name填入“PropEdit”或其它Q意非I字W串Q在URL中填入http://propedit.sourceforge.jp/eclipse/updates/Q?br /> 5、在Site to include to search列表中,除上一步加入的site外的其它选项LQ点击FinsihQ?br /> 6、在弹出的Updates对话框中的Select the features to install列表中将所有结ؓ“3.1.x”的选项LQ适用于Eclipse 3.2版本的朋友)Q?br /> 7、点击Finish关闭对话框;
8、在下蝲后,同意安装Q再按提C重启EclipseQ在工具条看到Ş似vi的按钮表C安装成功,插g可用。此ӞEclpise中所有properties文g的文件名前有l色的P的图标作为标识?/div>

阿伟 2008-04-15 13:10 发表评论
]]>Tomcat5.5 Administration Web Application配置http://www.tkk7.com/zilong/archive/2008/04/11/192226.html阿伟阿伟Fri, 11 Apr 2008 09:01:00 GMThttp://www.tkk7.com/zilong/archive/2008/04/11/192226.htmlhttp://www.tkk7.com/zilong/comments/192226.htmlhttp://www.tkk7.com/zilong/archive/2008/04/11/192226.html#Feedback0http://www.tkk7.com/zilong/comments/commentRss/192226.htmlhttp://www.tkk7.com/zilong/services/trackbacks/192226.htmlTomcat5.5 Administration Web Application配置
转自Qhttp://www.tkk7.com/bisal/archive/2007/04/18/111669.html
Tomcat5.5默认安装Ӟq没有提?Administration Web ApplicationQ需要另外下载安装,到这里下载:http://tomcat.apache.org/download-55.cgi Q在下蝲面的Binary Distributions栏下的第四大,Administration Web Application Q下载后解压Q然后把apache-tomcat-5.5.20\conf\Catalina\localhost\admin.xml拯?Tomcat 5.5\conf\Catalina\localhost下面Q再把apache-tomcat-5.5.20\server\webapps?br /> ?admin文gҎ贝到Tomcat5.5\server\webapps下面?br />
/*打开Tomcat5.5\conf\下的tomcat- users.xmlQ加入下面这?lt;user username="admin" password="admin" roles="admin, manager"/>Q?/


最后重新启动tomcatok了?br />

阿伟 2008-04-11 17:01 发表评论
]]>
վ֩ģ壺 ޹ƷŮ| 쿴Ƭˬ_Ѳ| С豻| ƷƵ| þԭƷ| ѸƵ| þþƷҹɫav| ޾Ʒ| ŷͽȺ| պþӰԺ| Ƶ㶮| ˳Ƶ| þþƷһԡ| ĻAVJI| ߹ۿѲavƬ| һVR| ˾ҹƵѹ| ޹Ʒһҳ| ޾Ʒ߹ۿ| ߹ۿѹۿַ | Ƶѹۿ| ŷ͵Ʒ | ޿һ24鶹| һƵѹۿ| 鶹ѹۿ91| ޻Ƭֻѹۿ| aëƬѸëƬƵ| www.޾Ʒ.com| պŷһ | Ļһva| ޵һ| þþƷרѶ| ߹ۿ| þùѾƷ| һɫþ88޾Ʒۺ | ŮƵ| Ƶһվ| þþƷ˳| ɫʹۺһ| Ƶ߹ۿ| Ļ|