2008年4月28日

          在IBM的JDK環境下進行JVM內存監控的問題

          錯誤信息如下:
          java.lang.NoClassDefFoundError: sun.management.ManagementFactory

          處理:

          sun.management.ManagementFactory替換成java.lang.management.ManagementFactory  

          因為ibmjdk沒有sun.management.ManagementFactory這個對象

          posted @ 2010-11-25 12:01 JGAO編程隨筆 閱讀(565) | 評論 (0)編輯 收藏

          oracel PreparedStatement的setString問題

          錯誤信息如下:

          超過最大長度限制

          處理:

          只能插入666個中文字符。


          或者更新到最新的
          oracle驅動包

          posted @ 2010-11-25 12:00 JGAO編程隨筆 閱讀(270) | 評論 (0)編輯 收藏

          servicemix部署到websphere中,需注意的問題

          1derby.jar包可能沖突,需刪除項目中的該包

          2MBean調用問題

             Websphere的MBean注冊路徑包括cell,nodeName和processName,具體可以銅鼓jconsole連接來查看MBean注冊的全路徑。這三個值可以通過Websphere的com.ibm.websphere.management.AdminServiceFactory這個對象來獲取,spring中的配置如下:
          <!-- 用于獲取websphereMBean名稱的cell,node,process -->

          <bean id="adminService" class="com.ibm.websphere.management.AdminServiceFactory" factory-method="getAdminService"/>

          <bean id="adminService.cellName" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>

          <bean id="adminService.nodeName" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>

          <bean id="adminService.processName" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>

          <bean id="websphereNamingStrategy" class="com.des.engine.mbean.WebsphereNamingStrategy">

          <property name="cellName" ref="adminService.cellName"/>

          <property name="nodeName" ref="adminService.nodeName"/>

          <property name="processName" ref="adminService.processName"/>

          </bean>

          WebsphereNamingStrategy為自己創建的對象就包括那三個屬性

          3:安全問題

          出現如下錯誤,Caused by: javax.management.JMRuntimeException: ADMN0022E: 由于憑證不足或憑證為空,無法對 org.apache.servicemix:Name=ServiceMgtImpl,cell=dvpbNode02Cell,Type=SystemService,ContainerName=ServiceMix,node=dvpbNode02,process=server1 MBean  retrieveServiceList 操作進行訪問。

              該問題是因為設置了安全控制,把控制臺的【安全性->安全管理、應用程序和基礎結構】里面的所以安全配置都去掉,然后重新啟動服務器主機(注意是重啟主機,不然安全設置不起作用),再啟動websphere服務應該就可以了,還有就是servicemix的應用要跟websphere一起啟動,不要等websphere啟動后再到控制臺啟動

          posted @ 2010-11-25 11:58 JGAO編程隨筆 閱讀(892) | 評論 (2)編輯 收藏

          ResultSet內存溢出OutOfMemory問題

          錯誤信息如下:

          jdbc在操作oracle海量數據的時候用ResultSet獲取所有的返回數據出現內存溢出

          處理:
          出錯的原因是ResultSet用的是可滾動結果集,正常情況下ResultSet是指針指向數據庫的數據,本身是不存儲數據庫的數據的,默認情況下就算是提交的sql能查詢處上億條的數據也是不消耗內存的,但是如果用的是可滾動結果集的ResultSet情況就不一樣了,ORACLE 是不支持可滾動結果集的,那么我們用JDBC得到一個可滾動的結果集就是由JDBC自己支持的,也就是說結果集是要存放在內存中的,所以在海量數據的情況下也就是要消耗大量內存的,因此造成內存溢出也就是正常的了,所以如果是海量數據的話就不要用可滾動結果集就可以了。

          posted @ 2009-06-23 21:19 JGAO編程隨筆 閱讀(2113) | 評論 (0)編輯 收藏

          com.ibm.websphere.ce.cm.StaleConnectionException: [ibm][db2][jcc][t4][2030][11211] 檢測到了通信錯誤

          錯誤信息如下:

          com.ibm.websphere.ce.cm.StaleConnectionException: [ibm][db2][jcc][t4][2030][11211]

          檢測到了通信錯誤。所使用的通信協議:TCP/IP"n所使用的通信 APISOCKETS

          檢測到錯誤的位置:Reply.fill()"n用于檢測錯誤的通信功能:InputStream.read()

          特定于協議的錯誤代碼數據不足、 0。消息:null"n   

          at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)"n     

          at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:67)"n    at

          sun.reflect.DelegatingConstructorAccessorImpl.newInstance

          (DelegatingConstructorAccessorImpl.java:45)"n

          at java.lang.reflect.Constructor.newInstance(Constructor.java:522)"n  

          at com.ibm.websphere.rsadapter.GenericDataStoreHelper.mapExceptionHelper

          (GenericDataStoreHelper.java:523)"n   

          at com.ibm.websphere.rsadapter.GenericDataStoreHelper.mapException(GenericDataStoreHelper.java:578)"n      

          at com.ibm.ws.rsadapter.jdbc.WSJdbcUtil.mapException(WSJdbcUtil.java:909)"n 

          at com.ibm.ws.rsadapter.jdbc.WSJdbcStatement.executeQuery(WSJdbcStatement.java:898)"n   

          at com.newland.bi.util.db.DBUtil.executeQuery(Unknown Source)"n

          at com.newland.bi.util.db.DBUtil.executeSql(Unknown Source)"n     

          at com.newland.bi.dao.jdbc.DaoImpl.executeQuery(DaoImpl.java:64)"n   

          at com.newland.bi.service.report.exp.dao.ReportExpDao.getExpList(ReportExpDao.java:72)"n 

          at com.newland.bi.service.report.exp.manage.ReportExpMgt.runExport(ReportExpMgt.java:91)"n   

          at com.newland.bi.service.report.exp.servlet.ReportExp1Servlet$1.run(ReportExp1Servlet.java:97)"n      

          at java.util.TimerThread.mainLoop(Timer.java:537)"n       at java.util.TimerThread.run(Timer.java:487)"n

          處理:

          出錯的原因可能是防火墻問題,websphere應用服務器和數據庫服務器之間是否存在防火墻

          防火墻是否會設置多久沒活動的連接就自動斷開掉,如果是這樣的話就會有問題,因為websphere上面的數據庫連接池可能有一段時間沒連接而被防火墻斷掉了

          但對于連接池本身根本就不知道該連接是否還可用,所以web應用從連接池獲取的連接可能就是已經斷開的了,所以就可能會出現日記中的錯誤問題


           

          posted @ 2009-06-23 21:14 JGAO編程隨筆 閱讀(7427) | 評論 (1)編輯 收藏

          Timer.schedule和Timer.scheduleAtFixedRate的區別

          schedulescheduleAtFixedRate的區別在于,如果指定開始執行的時間在當前系統運行時間之前,scheduleAtFixedRate會把已經過去的時間也作為周期執行,而schedule不會把過去的時間算上。

          posted @ 2009-06-23 21:13 JGAO編程隨筆 閱讀(1003) | 評論 (0)編輯 收藏

          cxf找不到類org.apache.axis.soap.MessageFactoryImpl出錯

           

          錯誤信息如下:

          Caused by: java.lang.ClassNotFoundException: org.apache.axis.soap.MessageFactoryImpl

              at java.net.URLClassLoader$1.run(URLClassLoader.java:200)

              at java.security.AccessController.doPrivileged(Native Method)

              at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

              at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

              at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)

              at java.lang.ClassLoader.loadClass(ClassLoader.java:251)

              at javax.xml.soap.MessageFactory.newInstance(MessageFactory.java:50)

              ... 10 more

          處理:

          原因是調用了axis soap.MessageFactoryImpl,cxf應該用的是sun
               在注冊安全攔截器之前執行下面代碼就可以了

          System.setProperty("javax.xml.soap.MessageFactory", "com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl");

          posted @ 2009-06-23 21:10 JGAO編程隨筆 閱讀(1281) | 評論 (0)編輯 收藏

          瀏覽器下載txt文件問題

          我們寫程序的時候可能會想用open或者<a>來下載一個txt文件,但我們會發現我們用瀏覽器下載這個txt文件的時候老是在瀏覽器里面直接打開了,而不是提示下載,這樣的話如果txt文件的內容非常多的話肯定是不行的,可能就會導致瀏覽器掛掉,客戶機器死機的問題
          現整理了個解決辦法,代碼如下:

          1.下載頁面
          open(action執行頁面,'iframeName','');
          2.action執行頁面
          <id="tempB" style="display:none" href="#" onclick="">&nbsp;</a>
          <iframe width=0 height=0 id="hideIframe" name="hideIframe"></iframe>
          <script>
              
          var n=0;
              
          function go(url){
                  
                  n
          ==0?new function()
                  
          {
                      frames(
          "hideIframe").location=url,n=1
                  }
          :null;
                  
                  document.all(
          "hideIframe").readyState!="complete"?setTimeout(go,10):so();
                  
                  
          function so()
                  
          {
                      frames(
          "hideIframe").document.execCommand("SaveAs"),n=0
                  }
          ;
              }

              
              
          var tempB = document.getElementById("tempB");
              
          <%
                  
          if(path.toLowerCase().indexOf(".txt")>=0){
              
          %>
              tempB.attachEvent('onclick',
          function(){go('<%=request.getContextPath()+"/tempfile/1.txt">');});
              
          <%
                  }
          else{
              
          %>
              tempB.attachEvent('onclick',
          function(){open('<%=request.getContextPath()+"/tempfile/1.xls">','','');});
              
          <%
                  }

              
          %>
              tempB.click();
          </script>


          posted @ 2008-11-23 19:28 JGAO編程隨筆 閱讀(758) | 評論 (0)編輯 收藏

          websphere部署war應用失敗

          websphere部署war應用失敗正常原因是web.xml的節點定義循序問題,或者一些空格,字符原因造成的
          可能先定義完所有的servlet后再定義所有的servlet mapping就沒問題了

          posted @ 2008-08-23 15:27 JGAO編程隨筆 閱讀(641) | 評論 (0)編輯 收藏

          通過jsf事件轉向后的頁面中文亂碼

          那個轉向后的頁面已經有用gb2312的編碼了
          可能原因是在java類里面調用了((HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse()).getWriter().write("");
          然后再轉向某個頁面,這樣可能導致編碼格式沖突,導致亂碼
          可以先給resonse設置下編碼格式,然后在write
          HttpServletResponse httpServletResponse = (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
          httpServletResponse.setContentType("text/html; charset=gb2312");
          httpServletResponse.setCharacterEncoding("gb2312");
          httpServletResponse.getWriter().write("");
          這樣應該就可以解決了

          posted @ 2008-06-26 23:46 JGAO編程隨筆 閱讀(594) | 評論 (0)編輯 收藏

          websphere的servlet配置無效問題

          C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\app-bi2Node01Cell\applications\appname.ear\deployments\appname\appname.war\WEB-INF\web.xml 該目錄下的web.xml的修改才是有效

          應用程序發布的目錄下的那個web.xml添加的servlet配置是無效的

          posted @ 2008-04-28 18:06 JGAO編程隨筆 閱讀(1491) | 評論 (3)編輯 收藏

          <2008年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 蒙自县| 广州市| 蕉岭县| 陵水| 开平市| 桐柏县| 木里| 固安县| 新余市| 金塔县| 吐鲁番市| 玉山县| 临泉县| 慈利县| 桑日县| 平凉市| 肃北| 大理市| 玉林市| 吴川市| 临沭县| 拜泉县| 南和县| 湾仔区| 从江县| 石台县| 聂荣县| 大冶市| 九台市| 宜宾市| 克什克腾旗| 遂溪县| 镇宁| 蒙城县| 柏乡县| 兰考县| 中超| 大足县| 阿巴嘎旗| 茶陵县| 报价|