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

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

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

    KK

    Kim-'s-Blog.Object-Everything.I'm POJO.

    .紀(jì)-錄.爲(wèi)了忘卻的記憶..真的勇士,要敢于直面遇到的問題,敢于正視繁雜的原碼......在實(shí)踐中積累!

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      74 Posts :: 1 Stories :: 70 Comments :: 0 Trackbacks

    #

    官網(wǎng)打不開最近,
    但是可以通過下面這個(gè)官網(wǎng)連接直接下載
    http://downloads.myeclipseide.com/downloads/products/eworkbench/7.0/myeclipse-7.1-win32.exe
    posted @ 2009-03-22 21:46 Kim' 閱讀(4375) | 評(píng)論 (5)編輯 收藏

    與 數(shù)據(jù)庫 db 相關(guān)操作有兩種:
    1.從DB中讀cronExpression
    2.Job持久化到數(shù)據(jù)庫
    對(duì)于1:
    Quartz 在Spring中動(dòng)態(tài)設(shè)置cronExpression
    參考 小刀的blog
    http://m.tkk7.com/xiaodaoxiaodao/articles/103437.html 

    通過DB加載cronException

    一個(gè)類是可以的
    2個(gè)類會(huì)出問題

     <bean id="test2" class="cn.edu.hust.mes.service.quartz.Test">  
       
    <property name="scheduler" ref="schedulerFactoryBean"/>         
       
    </bean>  
         
       
    <bean id="test" class="Test">  
       
    <property name="scheduler" ref="schedulerFactoryBean"/>  
       
    </bean>  
         
       
    <bean name="schedulerFactoryBean"  
                 
    class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
              
    <property name="triggers">  
                   
    <list>  
                     
    <ref bean="cronTriggerForPLCRead"/>  
                     
    <ref bean="cronTrigger"/>  
                  
    </list>  
             
    </property>  
       
             
    <property name="configLocation" value="classpath:quartz.properties"/>  
        
    </bean> 


    Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'schedulerFactoryBean': FactoryBean which is currently in creation returned null from getObject

    如果寫了攔截器的化 還會(huì)報(bào)這個(gè)錯(cuò) :

    Error creating bean with name 'test2': Bean with name 'test2' has been injected into other beans [schedulerJobDetailForPLCRead] in its raw version as part of a circular reference, but has eventually been wrapped (for example as part of auto-proxy creation). This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesOfType' with the 'allowEagerInit' flag turned off, for example.


    對(duì)于2:
    MethodInvokingJobDetailFactoryBean 不能持久化
    必須用JobDetailBean 需繼承QuartzJobBean  不夠pojo
    使用MethodInvokingJobDetailFactoryBean的化會(huì)報(bào):
    org.quartz.JobPersistenceException: Couldn't store job: Unable to serialize JobDataMap for insertion into database because the value of property 'methodInvoker' is not serializable: org.springframework.scheduling.quartz.MethodInvoki ngJobDetailFactoryBean [See nested exception: java.io.NotSerializableException: Unable to serialize JobDataMap for insertion into database because the value of property
    API上說了
    There's a note in the JavaDoc, I'd presume this might be your problem.
    JobDetails created via this FactoryBean are not serializable and thus not suitable for persistent job stores. You need to implement your own Quartz Job as a thin wrapper for each case where you want a persistent job to delegate to a specific service method.
    http://www.springframework.org/docs/api/org/springframework/scheduling/quartz/MethodInvokingJobDetailFactoryBean.html
    用MethodInvokingJobDetailFactoryBean不可持久化 除非加個(gè)thin wrapper
    但查不到任何資料
    但愿spring后續(xù)版本有好的方案 現(xiàn)在還是老老實(shí)實(shí)的用JobDetailBean吧

    另:
    不可用于web action action 用了session等作用域...
    Caused by: java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request? If you are actually operating within a web request and still receive this message,your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
    posted @ 2009-03-19 22:19 Kim' 閱讀(4261) | 評(píng)論 (0)編輯 收藏

    Quartz Cron Expression 網(wǎng)上收集的資料 備忘:

    一個(gè)Cron-表達(dá)式是一個(gè)由六至七個(gè)字段組成由空格分隔的字符串,其中6個(gè)字段是必須的而一個(gè)是可選的,如下:


    字段名     允許的值     允許的特殊字符 
    秒     0-59     , - * / 
    分     0-59     , - * / 
    小時(shí)     0-23     , - * / 
    日     1-31     , - * ? / L W C 
    月     1-12 or JAN-DEC     , - * / 
    周幾     1-7 or SUN-SAT     , - * ? / L C # 
    年 (可選字段)     empty, 1970-2099     , - * /


    '*' 字符可以用于所有字段,在“分”字段中設(shè)為"*"表示"每一分鐘"的含義。

    '?' 字符可以用在“日”和“周幾”字段. 它用來指定 '不明確的值'. 這在你需要指定這兩個(gè)字段中的某一個(gè)值而不是另外一個(gè)的時(shí)候會(huì)被用到。在后面的例子中可以看到其含義。

    '-' 字符被用來指定一個(gè)值的范圍,比如在“小時(shí)”字段中設(shè)為"10-12"表示"10點(diǎn)到12點(diǎn)".

    ',' 字符指定數(shù)個(gè)值。比如在“周幾”字段中設(shè)為"MON,WED,FRI"表示"the days Monday, Wednesday, and Friday".

    '/' 字符用來指定一個(gè)值的的增加幅度. 比如在“秒”字段中設(shè)置為"0/15"表示"第0, 15, 30, 和 45秒"。而 "5/15"則表示"第5, 20, 35, 和 50". 在'/'前加"*"字符相當(dāng)于指定從0秒開始. 每個(gè)字段都有一系列可以開始或結(jié)束的數(shù)值。對(duì)于“秒”和“分”字段來說,其數(shù)值范圍為0到59,對(duì)于“小時(shí)”字段來說其為0到23, 對(duì)于“日”字段來說為0到31, 而對(duì)于“月”字段來說為1到12。"/"字段僅僅只是幫助你在允許的數(shù)值范圍內(nèi)從開始"第n"的值。 因此 對(duì)于“月”字段來說"7/6"只是表示7月被開啟而不是“每六個(gè)月”, 請(qǐng)注意其中微妙的差別。

    'L'字符可用在“日”和“周幾”這兩個(gè)字段。它是"last"的縮寫, 但是在這兩個(gè)字段中有不同的含義。例如,“日”字段中的"L"表示"一個(gè)月中的最后一天" —— 對(duì)于一月就是31號(hào)對(duì)于二月來說就是28號(hào)(非閏年)。而在“周幾”字段中, 它簡(jiǎn)單的表示"7" or "SAT",但是如果在“周幾”字段中使用時(shí)跟在某個(gè)數(shù)字之后, 它表示"該月最后一個(gè)星期×" —— 比如"6L"表示"該月最后一個(gè)周五"。當(dāng)使用'L'選項(xiàng)時(shí),指定確定的列表或者范圍非常重要,否則你會(huì)被結(jié)果搞糊涂的。

    'W' 可用于“日”字段。用來指定歷給定日期最近的工作日(周一到周五) 。比如你將“日”字段設(shè)為"15W",意為: "離該月15號(hào)最近的工作日"。因此如果15號(hào)為周六,觸發(fā)器會(huì)在14號(hào)即周五調(diào)用。如果15號(hào)為周日, 觸發(fā)器會(huì)在16號(hào)也就是周一觸發(fā)。如果15號(hào)為周二,那么當(dāng)天就會(huì)觸發(fā)。然而如果你將“日”字段設(shè)為"1W", 而一號(hào)又是周六, 觸發(fā)器會(huì)于下周一也就是當(dāng)月的3號(hào)觸發(fā),因?yàn)樗粫?huì)越過當(dāng)月的值的范圍邊界。'W'字符只能用于“日”字段的值為單獨(dú)的一天而不是一系列值的時(shí)候。

    'L'和'W'可以組合用于“日”字段表示為'LW',意為"該月最后一個(gè)工作日"。

    '#' 字符可用于“周幾”字段。該字符表示“該月第幾個(gè)周×”,比如"6#3"表示該月第三個(gè)周五( 6表示周五而"#3"該月第三個(gè))。再比如: "2#1" = 表示該月第一個(gè)周一而 "4#5" = 該月第五個(gè)周三。注意如果你指定"#5"該月沒有第五個(gè)“周×”,該月是不會(huì)觸發(fā)的。

    'C' 字符可用于“日”和“周幾”字段,它是"calendar"的縮寫。 它表示為基于相關(guān)的日歷所計(jì)算出的值(如果有的話)。如果沒有關(guān)聯(lián)的日歷, 那它等同于包含全部日歷。“日”字段值為"5C"表示"日歷中的第一天或者5號(hào)以后",“周幾”字段值為"1C"則表示"日歷中的第一天或者周日以后"。

    對(duì)于“月份”字段和“周幾”字段來說合法的字符都不是大小寫敏感的。

    下面是一些完整的例子:


    表達(dá)式     含義 
    "0 0 12 * * ?"     每天中午十二點(diǎn)觸發(fā) 
    "0 15 10 ? * *"     每天早上10:15觸發(fā) 
    "0 15 10 * * ?"     每天早上10:15觸發(fā) 
    "0 15 10 * * ? *"     每天早上10:15觸發(fā) 
    "0 15 10 * * ? 2005"     2005年的每天早上10:15觸發(fā) 
    "0 * 14 * * ?"     每天從下午2點(diǎn)開始到2點(diǎn)59分每分鐘一次觸發(fā) 
    "0 0/5 14 * * ?"     每天從下午2點(diǎn)開始到2:55分結(jié)束每5分鐘一次觸發(fā) 
    "0 0/5 14,18 * * ?"     每天的下午2點(diǎn)至2:55和6點(diǎn)至6點(diǎn)55分兩個(gè)時(shí)間段內(nèi)每5分鐘一次觸發(fā) 
    "0 0-5 14 * * ?"     每天14:00至14:05每分鐘一次觸發(fā) 
    "0 10,44 14 ? 3 WED"     三月的每周三的14:10和14:44觸發(fā) 
    "0 15 10 ? * MON-FRI"     每個(gè)周一、周二、周三、周四、周五的10:15觸發(fā) 
    "0 15 10 15 * ?"     每月15號(hào)的10:15觸發(fā) 
    "0 15 10 L * ?"     每月的最后一天的10:15觸發(fā) 
    "0 15 10 ? * 6L"     每月最后一個(gè)周五的10:15觸發(fā) 
    "0 15 10 ? * 6L"     每月最后一個(gè)周五的10:15觸發(fā) 
    "0 15 10 ? * 6L 2002-2005"     2002年至2005年的每月最后一個(gè)周五的10:15觸發(fā) 
    "0 15 10 ? * 6#3"     每月的第三個(gè)周五的10:15觸發(fā)

    ---------------------------------------------

    Field Name  Mandatory?  Allowed Values  Allowed Special Characters 
    Seconds     YES         0-59             , - * / 
    Minutes     YES         0-59             , - * / 
    Hours       YES         0-23             , - * / 
    Day of month  YES       1-31             , - * ? / L W C 
    Month         YES        1-12 or JAN-DEC  , - * / 
    Day of week   YES        1-7 or SUN-SAT   , - * ? / L C # 
    Year          NO  empty, 1970-2099        , - * / 


    項(xiàng)目實(shí)例:
                  second  minute  hours  dayOfMonth  month  dayOfWeek  year
    每月         0            0           6              ?                    *                6#3            ?
    每周        59           59         18            ?                    *                1                ?
    自定義    28          47          9             30                 7                ?             2006

    每月:每個(gè)月的第三個(gè)星期五的上午6:00:00 觸發(fā)
    每周:每周的星期日的下午18:59:59 觸發(fā)
    自定義:2006年7月30日上午9:47:28 觸發(fā)

    所有星號(hào)對(duì)應(yīng)的段位置,都可以出現(xiàn)后面的符號(hào)(, - * /)
    (? / L C)這些符號(hào)可以出現(xiàn)在"一月哪天"和"星期"段位置
    (w)只能出現(xiàn)在"一月哪天"段位置
    (#)只能出現(xiàn)在"星期"段位置

    解釋符號(hào)代表的意思:
    * 代表任意合法的字段
    0 * 17 * * ? :表示在每天的5 PM 到 5:59之間的每一分鐘啟動(dòng)scheduler

    ? 表示沒值被指定
    如果同時(shí)指定"一月哪天"和"星期",可能兩者對(duì)應(yīng)不起來
    0 0,15,30,45 * * * ? :表示每刻鐘啟動(dòng)scheduler
    所以推薦用法是其中一個(gè)指定值,另一個(gè)用?指定

    / 表示時(shí)間的增量
    0 0/15 * * * ? :表示每刻鐘啟動(dòng)scheduler

    - 表示值的范圍
    0 45 3-8 ? * *

    L 如果用在"一月哪天"段上,表示一個(gè)月的最后一天;如果用在"星期"段上。表示一個(gè)星期的最后一天(星期六)
    0 0 8 L * ? :表示每個(gè)月最后一天的8點(diǎn)啟動(dòng)scheduler

    W 表示最靠近給定時(shí)間的一天,(必須是星期一到星期五)

    # 例如 6#3表示一個(gè)月的第三個(gè)星期五
    posted @ 2009-03-19 22:10 Kim' 閱讀(2695) | 評(píng)論 (0)編輯 收藏

    Myeclipse7  安裝插件有點(diǎn)麻煩 記錄于此備忘

     

    導(dǎo)入項(xiàng)目

    http://javapojo.javaeye.com/topics/download/d2d7696a-703e-3d82-8fcc-ad21c9b896fc

    運(yùn)行main方法

    得到一段字符串

    copy到Myeclipse7目錄:Genuitec\MyEclipse 7.0\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info

    這個(gè)文件里面。

     

    最近安裝了個(gè)Drools fro eclipse3.4 的插件

    下載 drools-5.0.0.CR1-eclipse-all.jar

    解壓到某文件夾

    copy其plugins路徑到main方法中(注意是plugins目錄哦)

    運(yùn)行該類


    public static void main(String[] args)
    {
    new CreatePluginsConfig().print("E:\\Genuitec\\kimplug\\drools-5.0.0.CR1-eclipse-all\\plugins");

    }

     得到

    org.guvnor.tools,5.0.0.CR1,file:/E:\Genuitec\kimplug\drools-5.0.0.CR1-eclipse-all\plugins\org.guvnor.tools_5.0.0.CR1.jar,4,false
    org.eclipse.webdav,3.0.101,file:/E:\Genuitec\kimplug\drools-5.0.0.CR1-eclipse-all\plugins\org.eclipse.webdav_3.0.101.jar,4,false
    org.drools.eclipse,5.0.0.CR1,file:/E:\Genuitec\kimplug\drools-5.0.0.CR1-eclipse-all\plugins\org.drools.eclipse_5.0.0.CR1.jar,4,false
    org.drools.eclipse.task,5.0.0.CR1,file:/E:\Genuitec\kimplug\drools-5.0.0.CR1-eclipse-all\plugins\org.drools.eclipse.task_5.0.0.CR1.jar,4,false

     

    將其拷入bundles.info尾部

    重啟myeclipse ok了



    posted @ 2009-03-18 11:25 Kim' 閱讀(2581) | 評(píng)論 (5)編輯 收藏

    當(dāng)然是修改注冊(cè)表

     

    1、打開注冊(cè)表編輯器,打到[HKEY_CLASSES_ROOT\Folder\shell]子鍵,在其下面新建名為“命令提示符”的 項(xiàng),再在這個(gè)項(xiàng)下面新建名為"Command"的 項(xiàng)。

    2、選擇"command"項(xiàng),把“默認(rèn)”字符竄值的數(shù)據(jù)設(shè)為“C:\windows\system32\cmd.exe cd "%l"”,然后確定。

    這樣任意目錄甚至盤符的右鍵菜單中都增加了一項(xiàng)“命令提示符”。

     

    比從cmd直接敲到目錄要方便的多了......

    posted @ 2009-03-17 14:08 Kim' 閱讀(805) | 評(píng)論 (0)編輯 收藏

    spring 某些類 從 DB 初始化 一些屬性
    在spring初始化過程中加載數(shù)據(jù)庫中的數(shù)據(jù)

    項(xiàng)目中有這個(gè)需求 需啟動(dòng)時(shí)將某些屬性賦DB讀到的值
    達(dá)到同步數(shù)據(jù)的目的
    考慮 1:構(gòu)造函數(shù) 不可以 dao還未初始化 null point
    2:xx 屬性 = dao.getXX.... dao還未初始化

    使用BeanPostProcessor可以

    public class PBSTrackManagerPostProcessor implements BeanPostProcessor
    {

        public Object postProcessAfterInitialization(Object obj, String s)
                throws BeansException
        {
            if(obj instanceof PBSTrackManager)
            {
                ((PBSTrackManager) obj).plcObjectInit();
            }
            return obj;
        }

        public Object postProcessBeforeInitialization(Object obj, String s)
                throws BeansException
        {
            return obj;
        }

    }

    但要注意配置文件
    <bean id="pbsTrackManagerPostProcess" class="cn.edu.hust.mes.service.manager.productionplan.impl.PBSTrackManagerPostProcessor">

    ?。。?!
    default-lazy-init="false"
    實(shí)時(shí)加載才可以


    posted @ 2009-03-16 10:34 Kim' 閱讀(2312) | 評(píng)論 (1)編輯 收藏

    在項(xiàng)目中發(fā)現(xiàn)一個(gè)奇怪的問題

     

    manager層使用 注入的dao ,dao.getHibernateTemplate() 結(jié)果得到的是null......

     

    而在dao中使用 this.getHibernateTemplate()卻一切正常...

     


    經(jīng)調(diào)試發(fā)現(xiàn): <aop:pointcut id="logPointcut" expression="within(cn.edu.hust.mes.service.manager..*) or within(cn.edu.hust.mes.domain.dao..*)" /> 如果被自己寫的 aop 攔截器 攔截了的話

    dao就是 cglib的. 部分屬性為null...

    而讓spring 自己注入就是ok的了


    是延遲加載 但使用是報(bào)空指針 還是什么原因 未知

    暫時(shí)去掉log攔截 一切ok

    posted @ 2009-03-16 09:46 Kim' 閱讀(1004) | 評(píng)論 (0)編輯 收藏

    http://javapojo.javaeye.com
    同步發(fā)布
    多多指教
    posted @ 2009-03-14 14:05 Kim' 閱讀(106) | 評(píng)論 (0)編輯 收藏

    最近同事本機(jī)發(fā)布項(xiàng)目會(huì)出現(xiàn)
    Tomcat 6 使用 JDK 1.6 和 jaxb2.17 問題
    CXF 新版會(huì)用到j(luò)axb2.17 但 Tomcat 6 JDK 會(huì)load jaxb2.0
    解決辦法:

    找到tomcat 的默認(rèn) endorsed 目錄
    the default endorsed directory is: $CATALINA_HOME/endorsed.
    如果沒有這個(gè)目錄 建這個(gè)目錄講jaxb的3個(gè)Jar包Copy來 OK
    java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI
    (from jar:file:/somedirectory/jaxb-impl.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See http://java.sun.com/j2se/1.5.0/docs/guide/standards/)

    It's actually a very simple fix, but painful enough to warrant a post. Put the jaxb-api.jar that you're trying to use into JDK_HOME/jre/lib/endorsed. If the endorsed directory doesn't exist, make it. This is apparently only a problem with JDK 1.6, not with JDK 1.5.


    ------------------------------------------
    如Myeclipse Tomcat
    將jaxb-api-2.1.jar jaxb-impl-2.1.7.jar jaxb-xjc-2.1.7.jar
    拷貝到E:\Genuitec\Common\plugins\com.genuitec.eclipse.easie.tomcat.myeclipse_7.9.100.zmyeclipse80020090924a\tomcat
    新建的common\endorsed 目錄里 便可。
    posted @ 2009-03-14 14:04 Kim' 閱讀(883) | 評(píng)論 (0)編輯 收藏

    細(xì)節(jié)不僅僅是細(xì)節(jié),他們構(gòu)成了設(shè)計(jì).
    使其盡可能的簡(jiǎn)單,而不是簡(jiǎn)化.
    如果我有更多的時(shí)間,我將寫一封更短的信.
    這可能是好的設(shè)計(jì),或者壞的設(shè)計(jì),但絕不可能沒有設(shè)計(jì)!
    posted @ 2008-12-31 12:52 Kim' 閱讀(161) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題
    共8頁: 上一頁 1 2 3 4 5 6 7 8 下一頁 
    jj
    主站蜘蛛池模板: 免费激情视频网站| a在线观看免费网址大全| 在线观看AV片永久免费| 亚洲av丰满熟妇在线播放| 亚洲国产精品专区| 久久精品国产免费观看三人同眠| 国产精品亚洲片在线| 少妇性饥渴无码A区免费| 国产亚洲一区二区手机在线观看| 久久免费视频一区| 亚洲大尺度无码专区尤物| 久久aa毛片免费播放嗯啊| 亚洲理论在线观看| 美女18一级毛片免费看| 成人无码a级毛片免费| 亚洲国产精品无码久久SM| 99热这里有免费国产精品| 亚洲视频免费播放| 毛片A级毛片免费播放| 亚洲av无码一区二区三区天堂| 免费人成在线观看播放国产| 一级毛片免费不卡直观看| 亚洲va中文字幕无码久久| 国产精品亚洲片在线花蝴蝶| 亚洲片一区二区三区| 日本高清免费观看| 少妇亚洲免费精品| 日本道免费精品一区二区| 亚洲高清资源在线观看| 天堂在线免费观看中文版| 国产va免费精品| 亚洲第一成年人网站| 特级淫片国产免费高清视频| caoporn国产精品免费| 亚洲成人网在线播放| 一级毛片在线观看免费| 亚洲一区二区三区在线观看网站 | 最近中文字幕免费完整| 亚洲精品美女网站| 久久精品国产亚洲AV不卡| 香蕉视频在线观看免费|