java技術(shù)研究

          統(tǒng)計(jì)

          留言簿(3)

          閱讀排行榜

          評(píng)論排行榜

          #

          將白色背景圖片變透明(轉(zhuǎn)自csdn)

               摘要: [java:showcolumns] view plaincopy·········10········20········30·...  閱讀全文

          posted @ 2012-04-28 09:50 小秦 閱讀(1418) | 評(píng)論 (0)編輯 收藏

          Java數(shù)字圖像處理基礎(chǔ)知識(shí) - 必讀(轉(zhuǎn)自javaeye)



           

          寫了很多篇關(guān)于圖像處理的文章,沒有一篇介紹Java 2D的圖像處理API,文章討論和提及的

          API都是基于JDK6的,首先來看Java中如何組織一個(gè)圖像對(duì)象BufferedImage的,如圖:


          一個(gè)BufferedImage的像素?cái)?shù)據(jù)儲(chǔ)存在Raster中,ColorModel里面儲(chǔ)存顏色空間,類型等

          信息,當(dāng)前Java只支持一下三種圖像格式- JPG,PNG,GIF,如何向讓Java支持其它格式,首

          先要 完成Java中的圖像讀寫接口,然后打成jar,加上啟動(dòng)參數(shù)- Xbootclasspath/p

          newimageformatIO.jar即可。

           

          Java中如何讀寫一個(gè)圖像文件,使用ImageIO對(duì)象即可。讀圖像文件的代碼如下:

           

          1. File file = new File("D:\\test\\blue_flower.jpg");  
          2. BufferedImage image = ImageIO.read(file);  

           

          寫圖像文件的代碼如下:

           

          1. File outputfile = new File("saved.png");  
          2. ImageIO.write(bufferedImage, "png",outputfile);  

           

          從BufferedImage對(duì)象中讀取像素?cái)?shù)據(jù)的代碼如下:

          1. int type= image.getType();  
          2. if ( type ==BufferedImage.TYPE_INT_ARGB || type == BufferedImage.TYPE_INT_RGB )  
          3.      return (int [])image.getRaster().getDataElements(x, y, width, height, pixels );  
          4. else  
          5.     return image.getRGB( x, y, width, height, pixels, 0, width );  

           

          首先獲取圖像類型,如果不是32位的INT型數(shù)據(jù),直接讀寫RGB值即可,否則需要從Raster

          對(duì)象中讀取。

           

          往BufferedImage對(duì)象中寫入像素?cái)?shù)據(jù)同樣遵守上面的規(guī)則。代碼如下:

           

          1. int type= image.getType();  
          2. if ( type ==BufferedImage.TYPE_INT_ARGB || type == BufferedImage.TYPE_INT_RGB )  
          3.    image.getRaster().setDataElements(x, y, width, height, pixels );  
          4. else  
          5.    image.setRGB(x, y, width, height, pixels, 0, width );  


           

          讀取圖像可能因?yàn)閳D像文件比較大,需要一定時(shí)間的等待才可以,Java Advance Image

          Processor API提供了MediaTracker對(duì)象來跟蹤圖像的加載,同步其它操作,使用方法如下:

          1. MediaTracker tracker = new MediaTracker(this); //初始化對(duì)象  
          2. tracker.addImage(image_01, 1); // 加入要跟蹤的BufferedImage對(duì)象image_001  
          3. tracker.waitForID(110000) // 等待10秒,讓iamge_01圖像加載  

           

          從一個(gè)32位int型數(shù)據(jù)cARGB中讀取圖像RGB顏色值的代碼如下:

           

          1. int alpha = (cARGB >> 24)& 0xff; //透明度通道  
          2. int red = (cARGB >> 16) &0xff;  
          3. int green = (cARGB >> 8) &0xff;  
          4. int blue = cARGB & 0xff;  

           

          將RGB顏色值寫入成一個(gè)INT型數(shù)據(jù)cRGB的代碼如下:

           

          1. cRGB = (alpha << 24) | (red<< 16) | (green << 8) | blue;  

           

          創(chuàng)建一個(gè)BufferedImage對(duì)象的代碼如下:

           

          1. BufferedImage image = newBufferedImage(256256, BufferedImage.TYPE_INT_ARGB);  

           

          一個(gè)完整的源代碼Demo如下:

           

          1. package com.gloomyfish.swing;  
          2.   
          3. import java.awt.BorderLayout;  
          4. import java.awt.Dimension;  
          5. import java.awt.Graphics;  
          6. import java.awt.Graphics2D;  
          7. import java.awt.RenderingHints;  
          8. import java.awt.image.BufferedImage;  
          9. import java.io.File;  
          10. import java.io.IOException;  
          11.   
          12. import javax.imageio.ImageIO;  
          13. import javax.swing.JComponent;  
          14. import javax.swing.JFrame;  
          15.   
          16. public class PlasmaDemo extends JComponent {    
          17.     
          18.     /**  
          19.      *   
          20.      */    
          21.     private static final long serialVersionUID = -2236160343614397287L;    
          22.     private BufferedImage image = null;    
          23.     private int size = 256;  
          24.         
          25.     public PlasmaDemo() {    
          26.         super();    
          27.         this.setOpaque(false);    
          28.     }    
          29.         
          30.     protected void paintComponent(Graphics g) {    
          31.         Graphics2D g2 = (Graphics2D)g;    
          32.         g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);    
          33.         g2.drawImage(getImage(), 55, image.getWidth(), image.getHeight(), null);    
          34.     }    
          35.         
          36.     private BufferedImage getImage() {    
          37.         if(image == null) {    
          38.             image = new BufferedImage(size, size, BufferedImage.TYPE_INT_ARGB);    
          39.             int[] rgbData = new int[size*size];    
          40.             generateNoiseImage(rgbData);    
          41.             setRGB(image, 00, size, size, rgbData);  
          42.             File outFile = new File("plasma.jpg");  
          43.             try {  
          44.                 ImageIO.write(image, "jpg", outFile);  
          45.             } catch (IOException e) {  
          46.                 e.printStackTrace();  
          47.             }  
          48.         }    
          49.         return image;    
          50.     }    
          51.         
          52.     public void generateNoiseImage(int[] rgbData) {    
          53.         int index = 0;    
          54.         int a = 255;    
          55.         int r = 0;    
          56.         int g = 0;    
          57.         int b = 0;    
          58.    
          59.         for(int row=0; row<size; row++) {    
          60.             for(int col=0; col<size; col++) {    
          61.                 // set random color value for each pixel    
          62.                 r = (int)(128.0 + (128.0 * Math.sin((row + col) / 8.0)));    
          63.                 g = (int)(128.0 + (128.0 * Math.sin((row + col) / 8.0)));    
          64.                 b = (int)(128.0 + (128.0 * Math.sin((row + col) / 8.0)));    
          65.                     
          66.                 rgbData[index] = ((clamp(a) & 0xff) << 24) |    
          67.                                 ((clamp(r) & 0xff) << 16)  |    
          68.                                 ((clamp(g) & 0xff) << 8)   |    
          69.                                 ((clamp(b) & 0xff));    
          70.                 index++;    
          71.             }    
          72.         }    
          73.             
          74.     }    
          75.         
          76.     private int clamp(int rgb) {    
          77.         if(rgb > 255)    
          78.             return 255;    
          79.         if(rgb < 0)    
          80.             return 0;    
          81.         return rgb;    
          82.     }      
          83.     
          84.     public void setRGB( BufferedImage image, int x, int y, int width, int height, int[] pixels ) {    
          85.         int type = image.getType();    
          86.         if ( type == BufferedImage.TYPE_INT_ARGB || type == BufferedImage.TYPE_INT_RGB )    
          87.             image.getRaster().setDataElements( x, y, width, height, pixels );    
          88.         else    
          89.             image.setRGB( x, y, width, height, pixels, 0, width );    
          90.     }    
          91.         
          92.     public static void main(String[] args) {    
          93.         JFrame frame = new JFrame("Noise Art Panel");    
          94.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
          95.         frame.getContentPane().setLayout(new BorderLayout());    
          96.             
          97.         // Display the window.    
          98.         frame.getContentPane().add(new PlasmaDemo(), BorderLayout.CENTER);    
          99.         frame.setPreferredSize(new Dimension(400 + 25,450));    
          100.         frame.pack();    
          101.         frame.setVisible(true);    
          102.     }    
          103. }    

           

          posted @ 2012-04-26 16:56 小秦 閱讀(720) | 評(píng)論 (0)編輯 收藏

          【轉(zhuǎn)】windows下mysql日志開啟與查詢

          修改 my.ini文件
          加入以下語(yǔ)句(在沒有設(shè)置的前提下)
          log-error=d:/log/mysql/mysql_log_err.txt
          log=d:/log/mysql/mysql_log.txt
          #log-bin=d:/log/mysql/mysql_log_bin
          log-slow-queries= d:/log/mysql/mysql_log_slow.txt

          使用以下命令查看是否啟用了日志

          mysql>show variables like ’log_%’;

          其他:
          參考:http://www.phpfans.net/article/htmls/201008/MjkzMTE0.html

          1.
          錯(cuò)誤日志 記錄啟動(dòng)、運(yùn)行或停止mysqld時(shí)出現(xiàn)的問題。
          My.ini配置信息:
          #Enter a name for the error log file. Otherwise a default name will be used.
          #log-error=d:/mysql_log_err.txt
          2.
          查詢?nèi)罩?記錄建立的客戶端連接和執(zhí)行的語(yǔ)句。
          My.ini配置信息:
          #Enter a name for the query log file. Otherwise a default name will be used.
          #log=d:/mysql_log.txt
          3.
          更新日志 記錄更改數(shù)據(jù)的語(yǔ)句。不贊成使用該日志。
          My.ini配置信息:
          #Enter a name for the update log file. Otherwise a default name will be used.
          #log-update=d:/mysql_log_update.txt
          4.
          二進(jìn)制日志 記錄所有更改數(shù)據(jù)的語(yǔ)句。還用于復(fù)制。
          My.ini配置信息:
          #Enter a name for the binary log. Otherwise a default name will be used.
          #log-bin=d:/mysql_log_bin
          5.
          慢日志 記錄所有執(zhí)行時(shí)間超過long_query_time秒的所有查詢或不使用索引的查詢。
          My.ini配置信息:
          #Enter a name for the slow query log file. Otherwise a default name will be used.
          #long_query_time =1

          #log-slow-queries= d:/mysql_log_slow.txt 

          posted @ 2012-04-20 20:52 小秦 閱讀(3808) | 評(píng)論 (0)編輯 收藏

          Spring中Quartz定時(shí)程序執(zhí)行兩次(轉(zhuǎn))


          請(qǐng)看下面這段配置就是錯(cuò)誤的: 

          <Host name="www.***.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 
          <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true" /> 
          <Context path="" docBase="/tomcat/webapps/***" debug="1" /> 
          <Context path="/***2" docBase="/tomcat/webapps/***2" debug="1" /> 
          </Host> 


          正確的配置如下 

          <Host name="www.***.com" debug="0" appBase="" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 
          <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true" /> 
          <Context path="" docBase="/tomcat/webapps/***" debug="1" /> 
          <Context path="/***2" docBase="/tomcat/webapps/***2" debug="1" /> 
          </Host> 
          這兩段的區(qū)別是第二段去除了appBase="webapps"中的webapps變成了appBase="",因?yàn)閣eb應(yīng)用程序都是放在 webapps這個(gè)目錄下的,如果不把“webapps“去掉,這里會(huì)調(diào)用一次quartz的任務(wù)調(diào)度,在接下來的“<Context path”中又會(huì)調(diào)用一次quartz的任務(wù)調(diào)度,所以就重復(fù)了2次

          posted @ 2012-04-20 16:45 小秦 閱讀(1769) | 評(píng)論 (0)編輯 收藏

          tomcat啟動(dòng)2次應(yīng)用

          tomcat中三種部署項(xiàng)目的方法
          第一種方法:在tomcat中的conf目錄中,在server.xml中的,<host/>節(jié)點(diǎn)中添加: 
          <Context path="/hello" docBase="D:eclipse3.2.2forwebtoolsworkspacehelloWebRoot" debug="0" privileged="true"> 
          </Context> 
          至于Context 節(jié)點(diǎn)屬性,可詳細(xì)見相關(guān)文檔。 
          第二種方法:將web項(xiàng)目文件件拷貝到webapps 目錄中。 
          第三種方法:很靈活,在conf目錄中,新建 Catalina(注意大小寫)\localhost目錄,在該目錄中新建一個(gè)xml文件,名字可以隨意取,只要和當(dāng)前文件中的文件名不重復(fù)就行了,該xml文件的內(nèi)容為: 
          <Context path="/hello" docBase="D:eclipse3.2.2forwebtoolsworkspacehelloWebRoot" debug="0" privileged="true"> 
          </Context> 
          第3個(gè)方法有個(gè)優(yōu)點(diǎn),可以定義別名。服務(wù)器端運(yùn)行的項(xiàng)目名稱為path,外部訪問的URL則使用XML的文件名。這個(gè)方法很方便的隱藏了項(xiàng)目的名稱,對(duì)一些項(xiàng)目名稱被固定不能更換,但外部訪問時(shí)又想換個(gè)路徑,非常有效。 
          第2、3還有優(yōu)點(diǎn),可以定義一些個(gè)性配置,如數(shù)據(jù)源的配置等。 
          還有一篇 詳細(xì)的 
          此處主要講述Tomcat部署發(fā)布JSP應(yīng)用程序的三種方法 
              1、直接放到Webapps目錄下 
               Tomcat的Webapps目錄是Tomcat默認(rèn)的應(yīng)用目錄,當(dāng)服務(wù)器啟動(dòng)時(shí),會(huì)加載所有這個(gè)目錄下的應(yīng)用。也可以將JSP程序打包成一個(gè) war包放在目錄下,服務(wù)器會(huì)自動(dòng)解開這個(gè)war包,并在這個(gè)目錄下生成一個(gè)同名的文件夾。一個(gè)war包就是有特性格式的jar包,它是將一個(gè)Web程序的所有內(nèi)容進(jìn)行壓縮得到。具體如何打包,可以使用許多開發(fā)工具的IDE環(huán)境,如Eclipse、NetBeans、ant、JBuilder等。也可以用 cmd 命令:jar -cvf applicationname.war package.*; 
          甚至可以在程序執(zhí)行中打包: 
          try{ 
          string strjavahome = system.getproperty("java.home"); 
          strjavahome = strjavahome.substring(0,strjavahome.lastindexof(\\))+"\\bin\\"; 
          runtime.getruntime().exec("cmd /c start "+strjavahome+"jar cvf hello.war c:\\tomcat5.0\\webapps\\root\\*"); 
          }  
          catch(exception e){system.out.println(e);} 
               webapps這個(gè)默認(rèn)的應(yīng)用目錄也是可以改變。打開Tomcat的conf目錄下的server.xml文件,找到下面內(nèi)容: 
          <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeloy="true" xmlValidation="falase" xmlNamespaceAware="false"> 
             2、在server.xml中指定 
               在Tomcat的配置文件中,一個(gè)Web應(yīng)用就是一個(gè)特定的Context,可以通過在server.xml中新建Context里部署一個(gè)JSP應(yīng)用程序。打開server.xml文件,在Host標(biāo)簽內(nèi)建一個(gè)Context,內(nèi)容如下。 
          <Context path="/myapp" reloadable="true" docBase="D:\myapp" workDir="D:\myapp\work"/> 
               其中path是虛擬路徑,docBase是JSP應(yīng)用程序的物理路徑,workDir是這個(gè)應(yīng)用的工作目錄,存放運(yùn)行是生成的于這個(gè)應(yīng)用相關(guān)的文件。 
             3、創(chuàng)建一個(gè)Context文件 
               以上兩種方法,Web應(yīng)用被服務(wù)器加載后都會(huì)在Tomcat的conf\catalina\localhost目錄下生成一個(gè)XML文件,其內(nèi)容如下: 
          <Context path="/admin" docBase="${catalina.home}/server/webapps/admin" debug="0" privileged="true"></Context> 
          可以看出,文件中描述一個(gè)應(yīng)用程序的Context信息,其內(nèi)容和server.xml中的Context信息格式是一致的,文件名便是虛擬目錄名。您可以直接建立這樣的一個(gè)xml文件,放在Tomcat的conf\catalina\localhost目錄下。例子如下: 
          注意:刪除一個(gè)Web應(yīng)用同時(shí)也要?jiǎng)h除webapps下相應(yīng)的文件夾禍server.xml中相應(yīng)的Context,還要將Tomcat的conf 
          \catalina\localhost目錄下相應(yīng)的xml文件刪除。否則Tomcat仍會(huì)岸配置去加載。。。


          所以項(xiàng)目最好不要放在webapps下,然后又跑去server.xml下或者catalina目錄下再配置一遍,這樣就會(huì)同時(shí)啟動(dòng)2次同一個(gè)應(yīng)用。如果應(yīng)用中有job,這樣會(huì)造成并發(fā)。

          posted @ 2012-04-20 16:36 小秦 閱讀(2453) | 評(píng)論 (1)編輯 收藏

          spring quartz使用多線程并發(fā)“陷阱”(轉(zhuǎn))

          定義一個(gè)job:ranJob,設(shè)置每秒執(zhí)行一次,設(shè)置不允許覆蓋并發(fā)執(zhí)行

           

          Xml代碼  
          1. <bean id="rankJob" class="com.chinacache.www.logstat.job.RankJob" />  
          2. <bean id="rankJobDetail"  
          3.     class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
          4.     <property name="targetObject" ref="rankJob" />  
          5.     <property name="targetMethod" value="execute" />  
          6.     <property name="concurrent" value="<span style="color: #ff0000;"><strong>false</strong></span>/>  
          7. </bean>  
          8. <bean id="rankJobTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">  
          9.     <property name="jobDetail" ref="rankJobDetail" />  
          10.     <!-- 單位 ms,半小時(shí) 1800000 ms -->  
          11.     <property name="repeatInterval" value="<span style="color: #ff0000;"><strong>1000</strong></span>/>  
          12. </bean>  

           

          job代碼:

          Java代碼  
          1. System.out.println("Start job");  
          2. ExecutorService exec = Executors.newFixedThreadPool(1);  
          3.   
          4. Thread thread = new Thread(new Runnable() {  
          5.     @Override  
          6.     public void run() {  
          7.         System.out.println("thread start");  
          8.         try {  
          9.             Thread.sleep(3000);  
          10.         } catch (InterruptedException e) {  
          11.             // TODO Auto-generated catch block  
          12.             e.printStackTrace();  
          13.         }  
          14.         System.out.println("thread end");  
          15.     }  
          16. });  
          17. exec.execute(thread);  
          18. System.out.println("end job");  

           

          程序輸出結(jié)果:

          Java代碼  
          1. Start job  
          2. end job  
          3. <span style="color: #ff0000;"><strong>thread start</strong></span>  
          4. Start job  
          5. end job  
          6. thread start  
          7. Start job  
          8. end job  
          9. thread start  
          10. Start job  
          11. end job  
          12. thread start  
          13. <strong><span style="color: #ff0000;">thread end</span></strong>  

           

          從結(jié)果可以看到,job的并發(fā)覆蓋配置似乎根本沒有生效,原因是:job沒有關(guān)注多線程執(zhí)行情況

          修改job代碼,添加如下代碼在job訪問最后,線程處理完job才結(jié)束,

           

          Java代碼  
          1. while (!exec.isTerminated()) {  
          2.     // 等待所有子線程結(jié)束,才退出主線程  
          3. }  

           

          修改代碼后程序結(jié)果:

          Java代碼  
          1. Start job  
          2. thread start  
          3. thread end  

           

          可以看到j(luò)ob始終沒有結(jié)束,說明ExecutorService始終沒有終止,看看文檔,加入shutdonw()方法,job所有代碼如下:

          Java代碼  
          1. public void execute() throws InterruptedException {  
          2.     System.out.println("Start job");  
          3.     ExecutorService exec = Executors.newFixedThreadPool(1);  
          4.       
          5.     Thread thread = new Thread(new Runnable() {  
          6.         @Override  
          7.         public void run() {  
          8.             System.out.println("thread start");  
          9.             try {  
          10.                 Thread.sleep(3000);  
          11.             } catch (InterruptedException e) {  
          12.                 // TODO Auto-generated catch block  
          13.                 e.printStackTrace();  
          14.             }  
          15.             System.out.println("thread end");  
          16.         }  
          17.     });  
          18.     exec.execute(thread);  
          19.     exec.shutdown();  
          20.        while (!exec.isTerminated()) {  
          21.            // 等待所有子線程結(jié)束,才退出主線程  
          22.        }          
          23.     System.out.println("end job");  
          24. }  

           

          打印結(jié)果如下:

           

          Java代碼  
          1. Start job  
          2. thread start  
          3. thread end  
          4. end job  
          5.   
          6. Start job  
          7. thread start  
          8. thread end  
          9. end job  
          10.   
          11. Start job  
          12. thread start  
          13. thread end  
          14. end job  

           

           

          OK,至此spring quartz多線程并發(fā)問題解決。回顧下,我們要使用isTerminated()方法等多線程結(jié)束后在結(jié)束job;多線程任務(wù)派發(fā)結(jié)束后,要使用shutdown()方法順序關(guān)閉線程(等待正在執(zhí)行任務(wù),不接受新任務(wù))

          posted @ 2012-04-19 14:15 小秦 閱讀(8134) | 評(píng)論 (1)編輯 收藏

          清除浮動(dòng)引起的bug

          <div class="clearLine"></div>
          這段用來清除浮動(dòng)
          得要寫在最下面,不可以寫在兩段div的中間,否則就會(huì)錯(cuò)位。

          posted @ 2012-04-18 16:27 小秦 閱讀(185) | 評(píng)論 (0)編輯 收藏

          Spring+hibernate 配置quartz后,quartz執(zhí)行的程序無法釋放連接是什么原因?

          有個(gè)bean命名不在指定的攔截范圍內(nèi),沒被事務(wù)攔截器攔截,所以沒有關(guān)閉連接了。 
          <bean id="mailEngine" parent="txProxyTemplate">
          以前沒有配置parent,所以不在spring的事務(wù)監(jiān)管之列。

          posted @ 2012-04-16 11:16 小秦 閱讀(984) | 評(píng)論 (0)編輯 收藏

          quartz多個(gè)線程同時(shí)處理一條記錄的問題。

          因?yàn)楫?dāng)save時(shí),會(huì)出錯(cuò)就表示鎖了。
          比如下面的方法,要catch一下,如果保存報(bào)錯(cuò),就表示另一個(gè)線程保存的時(shí)候鎖住了。
          public List<MailQueue> updateStatusAndFindMailList(int numOfEmailsPerTime) {
          List<MailQueue> list = this.mailQueueDao.findMailListAndLock(numOfEmailsPerTime);
          for(MailQueue mailQueue:list){
          try{
          mailQueue.setSendStatus(MailQueue.STATUS_SENDING);
          this.saveOrUpdate(mailQueue);
          }catch(Exception e){
          //如果保存失敗,表示是給另一個(gè)線程保存了。
          list.remove(mailQueue);
          }
          }
          return list;
          }

          posted @ 2012-04-12 13:18 小秦 閱讀(540) | 評(píng)論 (0)編輯 收藏

          filter與redirect引起的 IllegalStateException問題

          在response.sendRedirect()方法后加return語(yǔ)句即可,如下:
          response.sendRedirect("index.jsp");
          return;

          原因是:在程序中兩次調(diào)用了response.sendRedirect()方法。

          jdk5.0文檔中很清楚地介紹了出現(xiàn)IllegalStateException異常的可能情況:

          1)同一個(gè)頁(yè)面中再次調(diào)用response.sendRedirect()方法。
          2)提交的URL錯(cuò)誤,即不是個(gè)有效的URL。

          filter中多次chain.doFilter(request, response);也會(huì)這樣,要保證一個(gè)filter只進(jìn)行一次doFilter

          java.lang.IllegalStateException
          at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:405)
          at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:779)
          at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:385)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
          at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
          at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
          at com.ebizer.framework.star.filter.CoreUrlRewriteFilter.doFilterInternal(CoreUrlRewriteFilter.java:120)
          at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
          at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:581)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
          at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:843)
          at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:679)
          at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1293)
          at java.lang.Thread.run(Thread.java:595)

          posted @ 2012-04-11 12:00 小秦 閱讀(1769) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題
          共11頁(yè): First 上一頁(yè) 3 4 5 6 7 8 9 10 11 下一頁(yè) 
          主站蜘蛛池模板: 灵台县| 永泰县| 元朗区| 大竹县| 南郑县| 那曲县| 东港市| 玉溪市| 简阳市| 天气| 和硕县| 项城市| 曲靖市| 蛟河市| 织金县| 聂荣县| 花莲县| 柳林县| 张北县| 商丘市| 栖霞市| 绍兴县| 忻州市| 托克逊县| 格尔木市| 峨眉山市| 民勤县| 马龙县| 金川县| 泰顺县| 林西县| 锦屏县| 镶黄旗| 乌兰县| 平和县| 道孚县| 宝坻区| 万载县| 秭归县| 西乡县| 云林县|