<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    2007年1月15日

    在IBM的JDK環(huán)境下進(jìn)行JVM內(nèi)存監(jiān)控的問(wèn)題

    錯(cuò)誤信息如下:
    java.lang.NoClassDefFoundError: sun.management.ManagementFactory

    處理:

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

    因?yàn)?/span>ibmjdk沒(méi)有sun.management.ManagementFactory這個(gè)對(duì)象

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

    oracel PreparedStatement的setString問(wèn)題

    錯(cuò)誤信息如下:

    超過(guò)最大長(zhǎng)度限制

    處理:

    只能插入666個(gè)中文字符。


    或者更新到最新的
    oracle驅(qū)動(dòng)包

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

    servicemix部署到websphere中,需注意的問(wèn)題

    1derby.jar包可能沖突,需刪除項(xiàng)目中的該包

    2MBean調(diào)用問(wèn)題

       Websphere的MBean注冊(cè)路徑包括cell,nodeName和processName,具體可以銅鼓jconsole連接來(lái)查看MBean注冊(cè)的全路徑。這三個(gè)值可以通過(guò)Websphere的com.ibm.websphere.management.AdminServiceFactory這個(gè)對(duì)象來(lái)獲取,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為自己創(chuàng)建的對(duì)象就包括那三個(gè)屬性

    3:安全問(wèn)題

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

        該問(wèn)題是因?yàn)樵O(shè)置了安全控制,把控制臺(tái)的【安全性->安全管理、應(yīng)用程序和基礎(chǔ)結(jié)構(gòu)】里面的所以安全配置都去掉,然后重新啟動(dòng)服務(wù)器主機(jī)(注意是重啟主機(jī),不然安全設(shè)置不起作用),再啟動(dòng)websphere服務(wù)應(yīng)該就可以了,還有就是servicemix的應(yīng)用要跟websphere一起啟動(dòng),不要等websphere啟動(dòng)后再到控制臺(tái)啟動(dòng)

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

    ResultSet內(nèi)存溢出OutOfMemory問(wèn)題

    錯(cuò)誤信息如下:

    jdbc在操作oracle海量數(shù)據(jù)的時(shí)候用ResultSet獲取所有的返回?cái)?shù)據(jù)出現(xiàn)內(nèi)存溢出

    處理:
    出錯(cuò)的原因是ResultSet用的是可滾動(dòng)結(jié)果集,正常情況下ResultSet是指針指向數(shù)據(jù)庫(kù)的數(shù)據(jù),本身是不存儲(chǔ)數(shù)據(jù)庫(kù)的數(shù)據(jù)的,默認(rèn)情況下就算是提交的sql能查詢處上億條的數(shù)據(jù)也是不消耗內(nèi)存的,但是如果用的是可滾動(dòng)結(jié)果集的ResultSet情況就不一樣了,ORACLE 是不支持可滾動(dòng)結(jié)果集的,那么我們用JDBC得到一個(gè)可滾動(dòng)的結(jié)果集就是由JDBC自己支持的,也就是說(shuō)結(jié)果集是要存放在內(nèi)存中的,所以在海量數(shù)據(jù)的情況下也就是要消耗大量?jī)?nèi)存的,因此造成內(nèi)存溢出也就是正常的了,所以如果是海量數(shù)據(jù)的話就不要用可滾動(dòng)結(jié)果集就可以了。

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

    com.ibm.websphere.ce.cm.StaleConnectionException: [ibm][db2][jcc][t4][2030][11211] 檢測(cè)到了通信錯(cuò)誤

    錯(cuò)誤信息如下:

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

    檢測(cè)到了通信錯(cuò)誤。所使用的通信協(xié)議:TCP/IP"n所使用的通信 APISOCKETS

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

    特定于協(xié)議的錯(cuò)誤代碼數(shù)據(jù)不足、 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

    處理:

    出錯(cuò)的原因可能是防火墻問(wèn)題,websphere應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器之間是否存在防火墻

    防火墻是否會(huì)設(shè)置多久沒(méi)活動(dòng)的連接就自動(dòng)斷開(kāi)掉,如果是這樣的話就會(huì)有問(wèn)題,因?yàn)?/span>websphere上面的數(shù)據(jù)庫(kù)連接池可能有一段時(shí)間沒(méi)連接而被防火墻斷掉了

    但對(duì)于連接池本身根本就不知道該連接是否還可用,所以web應(yīng)用從連接池獲取的連接可能就是已經(jīng)斷開(kāi)的了,所以就可能會(huì)出現(xiàn)日記中的錯(cuò)誤問(wèn)題


     

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

    Timer.schedule和Timer.scheduleAtFixedRate的區(qū)別

    schedulescheduleAtFixedRate的區(qū)別在于,如果指定開(kāi)始執(zhí)行的時(shí)間在當(dāng)前系統(tǒng)運(yùn)行時(shí)間之前,scheduleAtFixedRate會(huì)把已經(jīng)過(guò)去的時(shí)間也作為周期執(zhí)行,而schedule不會(huì)把過(guò)去的時(shí)間算上。

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

    cxf找不到類org.apache.axis.soap.MessageFactoryImpl出錯(cuò)

     

    錯(cuò)誤信息如下:

    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

    處理:

    原因是調(diào)用了axis soap.MessageFactoryImpl,cxf應(yīng)該用的是sun
         在注冊(cè)安全攔截器之前執(zhí)行下面代碼就可以了

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

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

    瀏覽器下載txt文件問(wèn)題

    我們寫(xiě)程序的時(shí)候可能會(huì)想用open或者<a>來(lái)下載一個(gè)txt文件,但我們會(huì)發(fā)現(xiàn)我們用瀏覽器下載這個(gè)txt文件的時(shí)候老是在瀏覽器里面直接打開(kāi)了,而不是提示下載,這樣的話如果txt文件的內(nèi)容非常多的話肯定是不行的,可能就會(huì)導(dǎo)致瀏覽器掛掉,客戶機(jī)器死機(jī)的問(wèn)題
    現(xiàn)整理了個(gè)解決辦法,代碼如下:

    1.下載頁(yè)面
    open(action執(zhí)行頁(yè)面,'iframeName','');
    2.action執(zhí)行頁(yè)面
    <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編程隨筆 閱讀(761) | 評(píng)論 (0)編輯 收藏

    websphere部署war應(yīng)用失敗

    websphere部署war應(yīng)用失敗正常原因是web.xml的節(jié)點(diǎn)定義循序問(wèn)題,或者一些空格,字符原因造成的
    可能先定義完所有的servlet后再定義所有的servlet mapping就沒(méi)問(wèn)題了

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

    通過(guò)jsf事件轉(zhuǎn)向后的頁(yè)面中文亂碼

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

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

    websphere的servlet配置無(wú)效問(wèn)題

    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的修改才是有效

    應(yīng)用程序發(fā)布的目錄下的那個(gè)web.xml添加的servlet配置是無(wú)效的

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

    jsp的request.getParameter獲取不到表單參數(shù)

    可能原因:

    1: form表單中的控件沒(méi)有定義name屬性

    2: form表單中的控件被設(shè)置成disabled

    3: form表單的enctype="multipart/form-data"是一種用于上傳文件的表單

    解決方法:

    對(duì)于第三種情況我們直接request.getParameter來(lái)取參數(shù)值是取不到的

    我們可以借用apache的上傳組件來(lái)解決

    用到jarcommons-fileupload-1.1.1.jar

    import org.apache.commons.fileupload.FileItem;

    import org.apache.commons.fileupload.FileItemFactory;

    import org.apache.commons.fileupload.FileUploadException;

    import org.apache.commons.fileupload.disk.DiskFileItemFactory;

    import org.apache.commons.fileupload.servlet.ServletFileUpload;

        /**

         *獲取各種類型表單的表單參數(shù)

         *@paramrequest HttpServletRequest請(qǐng)求對(duì)像

         * @paramparamName 參數(shù)名

         *@return

         *@throwsFileUploadException

         */

        publicstatic String getParameterValue(HttpServletRequest request,String paramName) throws FileUploadException{

        boolean isMultipart = ServletFileUpload.isMultipartContent(request);

        if(isMultipart==true){

            FileItemFactory factory = new DiskFileItemFactory();

            ServletFileUpload upload = new ServletFileUpload(factory);

            List fileItemList = upload.parseRequest(request);

            if(fileItemList!=null){

               for(Iterator itr=fileItemList.iterator();itr.hasNext();){

                   FileItem fileItem = (FileItem)itr.next();

                   if(fileItem.getFieldName().equalsIgnoreCase(paramName)){

                       return new String(fileItem.getString().getBytes("ISO8859-1"))//中文轉(zhuǎn)碼

                   }

               }

            }

        }else{

            return new String(request.getParameter(paramName).getBytes("ISO8859-1"))//中文轉(zhuǎn)碼

        }

        return"";

        }

    posted @ 2007-12-14 19:07 JGAO編程隨筆 閱讀(14908) | 評(píng)論 (6)編輯 收藏

    初學(xué)jsf自定義標(biāo)簽時(shí)遇到的問(wèn)題總結(jié)

    1.定義一個(gè)標(biāo)簽要用到兩個(gè)java類,這個(gè)跟jsp的自定義標(biāo)簽有點(diǎn)不一樣
      第一個(gè)類繼承UIComponentTag, 用于定義標(biāo)簽的屬性和設(shè)置標(biāo)簽的所有屬性值到控件的map屬性attributes或valueBinding中
      第二個(gè)類繼承UIInput或者UIOutput,用于渲染標(biāo)簽的內(nèi)容,真正打印標(biāo)簽內(nèi)容的地方就在這里
       
    2.這兩個(gè)類是怎么聯(lián)系的
     我們需要像定義jsf的bean的影射文件一樣,在faces-config.xml或者自己定義的xml文件里面定義第二個(gè)類
     如:
     
    <faces-config>
      
    <!--分頁(yè)標(biāo)簽-->
      
    <component>
        
    <component-type>pageTag</component-type>
        
    <component-class>com.jsf.PageComponent</component-class>
      
    </component>
      
      
    </faces-config>
      然后第一個(gè)類要實(shí)現(xiàn)父類的一個(gè)方法 public String getComponentType();從這里返回一個(gè)字符串pageTag,這樣就跟第二個(gè)類聯(lián)系起來(lái)了

    3.標(biāo)簽屬性的定義
      標(biāo)簽屬性的定義一般都是可轉(zhuǎn)化為字符串的類型的,除非你還是用
    <%=rowList%>這種jsp賦值的方式
      別以為你定義的一個(gè)List類型的屬性可以用jsf的EL表達(dá)式可以直接賦值進(jìn)來(lái),EL表達(dá)式傳進(jìn)來(lái)以后屬性接收的就是這一串EL表達(dá)式
      所以就是說(shuō)你的屬性就是要字符串類型的

    4.那么jsf自定義標(biāo)簽是怎么接收EL表達(dá)式綁定的列表的
     先通過(guò)父類的isValueReference(屬性值),來(lái)判斷該屬性的值是否是一個(gè)EL的表達(dá)式
     如果是則通過(guò)獲取綁定值得方式把真正的屬性的值設(shè)置到標(biāo)簽父類的valueBinding對(duì)像中
     否則直接把屬性的值添加到標(biāo)簽父類的attributes對(duì)像中
      if (isValueReference(屬性值)) {
        javax.faces.el.ValueBinding vb = Util.getValueBinding(value.toString());
        component.setValueBinding(name, vb); //component就是標(biāo)簽對(duì)像,name就是標(biāo)簽的屬性名稱
     } else {
        component.getAttributes().put(name, 屬性值);
     }

     這就是個(gè)設(shè)置屬性值的過(guò)程,可以在第1點(diǎn)說(shuō)的第一個(gè)類里面的protected void setProperties(UIComponent component)方法
    5.現(xiàn)在知道標(biāo)簽屬性值的作用了嗎
     是的標(biāo)簽屬性值只不過(guò)是起個(gè)作用而已,而不是我們真正所要的值
     也就是說(shuō)我們是不能從這些屬性中直接取值的
     
    6.那么我們?cè)趺慈傩缘恼嬲闹的?br />  可以先從第4點(diǎn)說(shuō)的標(biāo)簽父類的attributes對(duì)像中取值
     如果取不到值那就到標(biāo)簽父類的valueBinding對(duì)像中取值
     說(shuō)白了就是,通過(guò)第4步我們屬性的真正的值不是放在attributes就是在valueBinding中
     Object obj = component.getAttributes().get(name); //component就是標(biāo)簽對(duì)像,name就是標(biāo)簽的屬性名稱
     if (obj == null) {
       ValueBinding vb = component.getValueBinding(name);
       if (vb != null) {
        return vb.getValue(context);
       } else {
        return null;
       }
     }
     這個(gè)過(guò)程就是取屬性值的過(guò)程,在第1點(diǎn)說(shuō)的第二個(gè)類里面進(jìn)行
     
    7.現(xiàn)在屬性值也可以取到了,那么我們要怎么打印標(biāo)簽的內(nèi)容呢
      我們可以在第二個(gè)類的encodeBegin或者encodeEnd中進(jìn)行
      public void encodeBegin(FacesContext context) throws IOException
      public void encodeEnd(FacesContext context) throws IOException
     
      取屬性值的過(guò)程也可以在這里進(jìn)行,取完值后就是把值組裝到標(biāo)簽內(nèi)容的相應(yīng)位置中就完了
      
      基本上就是這幾點(diǎn)

    posted @ 2007-11-21 19:21 JGAO編程隨筆 閱讀(2157) | 評(píng)論 (4)編輯 收藏

    ajax4jsf跟outputStream.write沖突?

    我在項(xiàng)目中引入ajax4jsf框架
    web.xml中加入

     <filter>
            
    <display-name>Ajax4jsf Filter</display-name>
            
    <filter-name>ajax4jsf</filter-name>
            
    <filter-class>org.ajax4jsf.Filter</filter-class>
      
    </filter>
      
    <filter-mapping> 
          
    <filter-name>ajax4jsf</filter-name>
          
    <servlet-name>Faces Servlet</servlet-name>
          
    <dispatcher>REQUEST</dispatcher>
          
    <dispatcher>FORWARD</dispatcher>
          
    <dispatcher>INCLUDE</dispatcher>
     
    </filter-mapping>


    結(jié)果以前的輸出文件到客戶端的代碼就出問(wèn)題了

                    InputStream fileInputStream = mgt.downloadToStream(result_pathEl.getTextTrim());
                    mgt.deleteFile(result_pathEl.getTextTrim());
    //刪除臨時(shí)的報(bào)表文件
                    JSFUtil.setSessionAttribute(sessionId, "true");
                    
    if( fileInputStream == null ){
                      System.out.println(
    "==========get inputstream is null========");
                    }


                    OutputStream o 
    = response.getOutputStream();
                    response.reset();
                    response.setContentType( 
    "APPLICATION/OCTET-STREAM" );
                    response.setHeader( 
    "Content-Disposition""attachment;filename=\"" + "exportExcel.xls""\"" );

                    
    int length;
                    
    byte buf[] = new byte[1024];

                    
    while ( ( length = fileInputStream.read( buf, 01024 ) ) != -1 ) {
                        o.write( buf, 
    0, length );
                    }

                    o.flush();
                    o.close();
                    fileInputStream.close();


    提示錯(cuò)誤如下:主要是o.write出問(wèn)題

    java.lang.NullPointerException
            at org.ajax4jsf.framework.ajax.xmlfilter.FilterServletResponseWrapper$By
    teArrayServletOutputStream.write(FilterServletResponseWrapper.java:290)


    把web.xml中的ajax4jsf的filter給去掉后,一切又恢復(fù)正常

    有那位仁兄遇到同樣情況的嗎?

    posted @ 2007-11-19 20:16 JGAO編程隨筆 閱讀(452) | 評(píng)論 (1)編輯 收藏

    取程序的絕對(duì)路徑問(wèn)題

    在本地tomcat5中這樣沒(méi)問(wèn)題
    request.getRealPath("/")+"report/config/configFile/"+priv_id+".xml"

    但是發(fā)布到websphere6后就出問(wèn)題了
    要改成
    request.getRealPath("/")+"/report/config/configFile/"+priv_id+".xml"

    就是report前要加個(gè)"/" 斜杠,加了后tomcat5下也是正確的

    posted @ 2007-11-09 18:25 JGAO編程隨筆 閱讀(253) | 評(píng)論 (0)編輯 收藏

    程序從oracle移植到db2遇到的問(wèn)題

     

    1.jdk環(huán)境問(wèn)題

    jdk環(huán)境要改為ibm jdk 5.0, 不然連接不上數(shù)據(jù)庫(kù), 數(shù)據(jù)庫(kù)連接池的連接失敗,c3p0連接池的連接失敗,目前還是默認(rèn)的方式采用應(yīng)用服務(wù)器的連接池,像tomcat就采用tomcat配置的連接池

    eclipse 的開(kāi)發(fā)時(shí)用的jre如果修改為ibm的以后,有可能會(huì)導(dǎo)致編譯不了,這要修改編輯器java類型的編碼為gb2312就可以了,genaral->content type –java file

    2. 程序中編寫(xiě)sql時(shí)的用戶模式問(wèn)題

    用戶模式要用公共常量,以便修改

    不同用戶模式之間的表的訪問(wèn)通過(guò)授權(quán)來(lái)解決

    3. db2數(shù)據(jù)庫(kù)的函數(shù)問(wèn)題

    程序中的添加和修改時(shí)間的地方的日期函數(shù)都要修改成

    Date(“2007-01-01”)就是字符串中間有帶中杠的

    日期轉(zhuǎn)字符串要把原先的to_char改成char(int(2007-01-01))

    Kpi的消息串在配置中在取權(quán)限priv_id的字符串要加上char(int(priv_id)),如果直接char(priv_id)會(huì)多出一個(gè)點(diǎn)號(hào)

    4. oracle樹(shù)形結(jié)構(gòu)的查詢移植到db2存在問(wèn)題

    菜單查詢中,有存在層次level的沒(méi)實(shí)現(xiàn),目前我先通過(guò)自己寫(xiě)的函數(shù)實(shí)現(xiàn),但存在問(wèn)題跟沒(méi)有層次的實(shí)現(xiàn)方式一樣存在問(wèn)題

    因?yàn)橥ㄟ^(guò)in的方式,in的存在字段是有限的到時(shí)候數(shù)據(jù)量變多了,sql就會(huì)執(zhí)行失敗,可以考慮臨時(shí)表來(lái)解決

    5. 序列表seq的長(zhǎng)度問(wèn)題

    所有的序列表的序列長(zhǎng)度db2是有限制的,好像不能大于8位,這樣序列的字段都要做修改,而且不能重復(fù),要進(jìn)一步確認(rèn)修改

    7. 系統(tǒng)權(quán)限移植問(wèn)題

    地區(qū)編碼的字段從數(shù)值型改為字符串類型,很辛苦,建議以后程序的bean的屬性都用字符串來(lái)定義,避免程序移植的類型修改的問(wèn)題

    8. erwin數(shù)據(jù)模型問(wèn)題

    數(shù)據(jù)模型中的部分表沒(méi)有及時(shí)更新,跟開(kāi)發(fā)時(shí)用的表有出入,以后數(shù)據(jù)模型要及時(shí)更新

    9. 建表的sql語(yǔ)句問(wèn)題

           建表的sql

     number(12) 這樣的都要改成decimal(12,0)

     varchar2都要改成varchar

    posted @ 2007-10-27 23:27 JGAO編程隨筆 閱讀(394) | 評(píng)論 (0)編輯 收藏

    用ibm的東西

    用ibm的東西前先裝ibm的jdk

    posted @ 2007-10-20 15:33 JGAO編程隨筆 閱讀(175) | 評(píng)論 (0)編輯 收藏

    表單提交后獲取不到控件的值

    有時(shí)候我們?cè)诒韱翁峤缓髤s獲取不到控件的值
    可能原因:
    1. 控件少了name屬性
    2.控件被設(shè)置成disabled

    posted @ 2007-07-06 23:38 JGAO編程隨筆 閱讀(360) | 評(píng)論 (0)編輯 收藏

    OutputStream 轉(zhuǎn) InputStream

    使用場(chǎng)合: 操作excel或pdf等文件時(shí)需要先寫(xiě)到輸出流, 然后又要用到ftp上傳該excel或pdf文件需要用到輸入流作為參數(shù),這時(shí)候我們就可以直接把該文件的輸出流轉(zhuǎn)為輸入流直接上傳到ftp服務(wù)器上

      1.
      ByteArrayOutputStream os 
    = new ByteArrayOutputStream();
      InputStream is 
    = new ByteArrayInputStream(os.toByteArray());

    posted @ 2007-06-18 22:41 JGAO編程隨筆 閱讀(4420) | 評(píng)論 (0)編輯 收藏

    設(shè)置file控件的按鈕樣式

    網(wǎng)上找的,分享一下
    <html>
    <script>
    function fclick(obj){
    with(obj){
    style.posTop
    =event.y-offsetHeight/2
    style.posLeft
    =event.x-offsetWidth/2
    }

    }

    </script>
    <style>
    input
    {border:1px solid #333333;color:#666666;background:#eeeeee;font:normal 12px Tahoma;height:18px}
    </style>
    <br>
    <br>
    <br>
    <table>
    <tr>
    <td>
    <form method="post" action="" enctype="multipart/form-data">
    <input id="f_file">&nbsp;<input type="button" onmouseover="fclick(t_file)" value="選擇上傳文件">
    <br>
    <input name="upload" type="file" style="position:absolute;filter:alpha(opacity=10);width:30px;" id="t_file" onchange="f_file.value=this.value" hidefocus>
    <br><input type="submit" value="提交">
    </form>
    </tr>
    </table>
    </html>

    posted @ 2007-06-14 23:03 JGAO編程隨筆 閱讀(2488) | 評(píng)論 (3)編輯 收藏

    進(jìn)度條思想

    后臺(tái)數(shù)據(jù)處理完成的時(shí)候設(shè)置一個(gè)處理完成的session標(biāo)志
    前臺(tái)通過(guò)發(fā)送ajax請(qǐng)求設(shè)置成功標(biāo)志的session的頁(yè)面,如果session的成功標(biāo)志為true則數(shù)據(jù)處理完成,關(guān)閉正在處理的進(jìn)度條圖片,否則繼續(xù)發(fā)送ajax請(qǐng)求,顯示正在處理的進(jìn)度條圖片,當(dāng)然也可以通過(guò)后臺(tái)返回?cái)?shù)據(jù)處理完成的百分比,來(lái)制作精確的進(jìn)度條

    posted @ 2007-06-14 23:00 JGAO編程隨筆 閱讀(216) | 評(píng)論 (0)編輯 收藏

    動(dòng)態(tài)設(shè)置checkbox的checked屬性

    當(dāng)我們?cè)谧鰟?dòng)態(tài)生成checkbox和動(dòng)態(tài)設(shè)置checkbox的checked屬性的時(shí)候要注意
    只有checkbox在頁(yè)面生成以后設(shè)置checkbox的checked屬性才有效,否則是無(wú)效的
    也就是說(shuō)不要在create checkbox后就設(shè)置checked屬性,要等到該checkbox已經(jīng)append到頁(yè)面中了在來(lái)設(shè)置checked屬性這樣才可以

    posted @ 2007-05-22 23:44 JGAO編程隨筆 閱讀(1537) | 評(píng)論 (1)編輯 收藏

    response.sendredirect的問(wèn)題

    1) 使用response.sendredirect重定向是沒(méi)辦法通過(guò)request.setAttribute來(lái)傳遞對(duì)象到另外一個(gè)頁(yè)面的
    但我們可以通過(guò)轉(zhuǎn)發(fā)的方式來(lái)實(shí)現(xiàn)request.getRequestDispatcher("test2.jsp").forward(request,response)
    這也是struts默認(rèn)的頁(yè)面跳轉(zhuǎn)方式,這就是為什么我們可以在action里面request.setAttribute然后在頁(yè)面里request.getAttribute

    2) 使用response.sendredirect重定向要記得在后面加上return不然后面的語(yǔ)句還是會(huì)繼續(xù)往下執(zhí)行的,還有就是response.sendredirect之前最好不要有任何的輸出語(yǔ)句包括html不然可能會(huì)重定向失敗
    最近我還遇到一個(gè)比較奇怪的問(wèn)題就是response.sendredirect失敗,因?yàn)槲业亩丝谑峭ㄟ^(guò)交換機(jī)來(lái)轉(zhuǎn)換的所以可能就是在這里重定向不過(guò)去了,所以建議以后大家都使用request.getRequestDispatcher("test2.jsp").forward(request,response)這種方式就不會(huì)錯(cuò)了,當(dāng)然也可以用jsp標(biāo)簽的forward

    posted @ 2007-05-07 21:47 JGAO編程隨筆 閱讀(1080) | 評(píng)論 (0)編輯 收藏

    可定制生命周期的緩存

         摘要: 1) ICache.java 緩存接口 package com.jgao.cache;/** *//** * 緩存接口 * @author jgao * */public interface ICache {      ...  閱讀全文

    posted @ 2007-04-22 06:18 JGAO編程隨筆 閱讀(1012) | 評(píng)論 (0)編輯 收藏

    獲取第N級(jí)的所有節(jié)點(diǎn)實(shí)現(xiàn)代碼

    ??? 基本的思想和步驟都在了,主要就是遞歸

    ??? /**
    ???? * 傳入級(jí)數(shù)返回存放該級(jí)數(shù)下所有組織列表的列表
    ???? * @param lever int 組織級(jí)數(shù)
    ???? * @return List<List> 存放組織列表
    ???? */

    ??? public List<List> getTreeLeverNode(int lever) {
    ??????? String sqlstr = "select? ID from?table1 where PARENT_ID=0";
    ??????? Result ret = Dao.executeQuery(sqlstr);
    ??????? List<List> list = new Vector<List>();
    ??????? List rslist = new Vector();
    ??????? List<String> nodeList = new Vector<String>();
    ??????? for (int i = 0; i < ret.Length(); i++) {
    ??????????? rslist = getNextNode(Integer.parseInt(ret[i]
    ??????????????????????? .toString()), lever - 1, nodeList);
    ??????????????? list.add(rslist);
    ??????? }
    ??????? return list;
    ??? }

    ??? /**
    ???? * 返回存放該級(jí)數(shù)下所有組織的列表
    ???? * @param reqParentid 請(qǐng)求傳入的父節(jié)點(diǎn)ID
    ???? * @param lever 組織級(jí)數(shù)
    ???? * @param list 存放該級(jí)數(shù)下所有組織的列表
    ???? * @return List<String> 存放組織
    ???? */

    ??? public List<String> getNextNode(int reqParentid, int lever, List list) {
    ??????? String sqlstr = "select? ID from?table1 where PARENT_ID="
    ??????????????? + reqParentid;
    ??????? DBResult ret = super.executeQuery(sqlstr);
    ??????? List rslist = new Vector();
    ??????? lever = lever - 1;
    ??????? if (lever > 0) {
    ???????????for (int i = 0; i < ret.Length(); i++) {
    ?????????????????rslist = getNextNode(Integer.parseInt(ret[i]
    ??????????????????????? .toString()), lever , nodeList);
    ??????????????? list.add(rslist);
    ???????????}
    ??????? } else {
    ??????????? for (int i = 0; i < ret.Length(); ; i++) {
    ????????????????list.add(ret[i].toString());
    ??????????? }
    ??????? }
    ??????? return list;
    ??? }

    posted @ 2007-01-15 20:30 JGAO編程隨筆 閱讀(126) | 評(píng)論 (0)編輯 收藏

    <2007年1月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(1)

    隨筆檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 成年女人免费视频播放体验区| 国产精品亚洲一区二区三区在线| 亚洲无线电影官网| 男男gay做爽爽免费视频| 亚洲高清视频免费| 在线观看国产区亚洲一区成人 | 亚洲国产香蕉碰碰人人| 国产91成人精品亚洲精品| 免费黄色网址网站| 国产亚洲无线码一区二区| 羞羞视频免费网站含羞草| 福利免费观看午夜体检区| 久久91亚洲精品中文字幕| 九九视频高清视频免费观看| 成人免费视频小说| 亚洲精品熟女国产| 日韩精品无码免费专区午夜| 亚洲国产成人五月综合网| 亚洲综合一区国产精品| 57pao国产成永久免费视频| 亚洲国产综合无码一区| 一区二区三区免费在线视频| 四虎在线免费播放| 亚洲一区二区三区在线网站| 99精品一区二区免费视频| 亚洲色爱图小说专区| 成年网站免费入口在线观看 | 免费无码又爽又刺激一高潮| 免费一级毛片在线观看| 亚洲人成色77777在线观看| 久草视频在线免费| 亚洲尹人九九大色香蕉网站| 99麻豆久久久国产精品免费| 亚洲国产精品一区二区九九| 豆国产96在线|亚洲| 思思99re66在线精品免费观看| 亚洲av永久无码嘿嘿嘿| 8x网站免费入口在线观看| 亚洲va无码va在线va天堂| 成人无码WWW免费视频| 最新国产AV无码专区亚洲|