隨筆-109  評論-187  文章-25  trackbacks-0
           
               摘要: 最近深入的學(xué)習(xí)了一下 Spring, 感受到了 AOP 的威力,以前看過 BEA 的 DEV2DEV 雜志,有一期專門的 AOP ,里面很詳細(xì)講的,看了有一年多了,今天真正來作個例子 ? 這個例子也是從 ...  閱讀全文
          posted @ 2006-05-18 18:04 小小程序程序員混口飯吃 閱讀(400) | 評論 (0)編輯 收藏

          ??? <bean id="transactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"

          ?????? ? abstract="true">

          ?????? <property name="transactionManager" ref="transactionManager"/>

          ?????? <property name="transactionAttributes">

          ?????????? <props>

          ????????????? <prop key="insert*">PROPAGATION_REQUIRED</prop>

          ????????????? <prop key="update*">PROPAGATION_REQUIRED</prop>

          ????????????? <prop key="delete*">PROPAGATION_REQUIRED</prop>

          ????????????? <prop key="change*">PROPAGATION_REQUIRED</prop>

          ????????????? <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>

          ??? ?????? </props>

          ?????? </property>

          ??? </bean>

          1

          一旦你決定要用 AOP 來做 SERVICE 內(nèi)部每個方法的事務(wù)處理,那么在 DAO 層內(nèi)部最好不要從自己去 catch 異常,因為在 SERVICE 里面可能多次調(diào)用 DAO ,一旦多次調(diào)用,你其中一個方法捕獲了異常就沒有辦法保證事務(wù)回滾,所以即使你捕獲異常為了調(diào)試,一定要在 CATCH 方法中一定還要拋出一個異常來,否則無法保證事務(wù)

          ?

          2

          一旦決定要用 spring aop 方式來處理事務(wù),一定要不采用 JDOtemplate ,或者 HIBERNATE TEMPALATE 內(nèi)部類的方式,因為那樣他們自己去管理事務(wù),一旦在內(nèi)部類中事務(wù)回滾,無法保證其他的 DAO 中事務(wù)回滾

          ?

          3

          1、? PROPAGATION_REQUIRED -- 支持當(dāng)前的事務(wù),如果不存在就創(chuàng)建一個新的。這是最常用的選擇。
          2
          、 PROPAGATION_SUPPORTS -- 支持當(dāng)前的事務(wù),如果不存在就不使用事務(wù)。
          3
          PROPAGATION_MANDATORY -- 支持當(dāng)前的事務(wù),如果不存在就拋出異常。
          4
          、 PROPAGATION_REQUIRES_NEW -- 創(chuàng)建一個新的事務(wù),并暫停當(dāng)前的事務(wù)(如果存在)。
          5
          、 PROPAGATION_NOT_SUPPORTED -- 不使用事務(wù),并暫停當(dāng)前的事務(wù)(如果存在)。
          6
          PROPAGATION_NEVER -- 不使用事務(wù),如果當(dāng)前存在事務(wù)就拋出異常。
          7
          PROPAGATION_NESTED -- 如果當(dāng)前存在事務(wù)就作為嵌入事務(wù)執(zhí)行,否則與 PROPAGATION_REQUIRED 類似。

          ?

          ?

          4 < prop key="change*">PROPAGATION_REQUIRED</prop>

          ? 你可以在 PROPAGATION_REQUIRE 之后指定拋出什么樣的異常事務(wù)才回滾,或者事務(wù)的隔離方式是什么等等都可以配置如 <prop key="change*">PROPAGATION_REQUIRED,readOnly,-PetClinicException</prop>

          posted @ 2006-05-17 17:37 小小程序程序員混口飯吃 閱讀(1284) | 評論 (0)編輯 收藏

          1 oracle 不支持 read uncomitted 方式

          2 read-only 不是sql92標(biāo)準(zhǔn),readonly的好處是提高了數(shù)據(jù)庫的效率,readonly的同時又允許DML操作,我原來以為readonly就不允許DML操作數(shù)據(jù)庫了呢

          3 read committed serializable的一些區(qū)別與聯(lián)系 ?

          ?1 :都看不到臟數(shù)據(jù)

          ?2 read committed 不能夠重復(fù)讀,而serializable能夠重復(fù)讀,(重復(fù)讀的意思就是,在一個事務(wù)中多次讀取一條被被的事務(wù)提高的數(shù)據(jù)(COMMITEserializable看不到?。。?span lang="EN-US">

          ?3 :隔離程度越高,數(shù)據(jù)庫的并發(fā)性越差;隔離程度越低,數(shù)據(jù)庫的并發(fā)性越好。也就是說你要的數(shù)據(jù)準(zhǔn)確一致性好,就要犧牲一些數(shù)據(jù)的效率胃代價的

          ?4 ? 如果有在serializable事務(wù)開始時未提交的事務(wù)在serializable事務(wù)結(jié)束之前修改了serializable事務(wù)將要修改的行并進行了提交,則serializable事務(wù)提交的時候回法場發(fā)生無法序列化訪問的錯誤

          posted @ 2006-05-16 15:37 小小程序程序員混口飯吃 閱讀(587) | 評論 (0)編輯 收藏


          經(jīng)過嘗試,發(fā)現(xiàn)可以利用 Office 2003 中的 Microsoft Office Document Imaging 組件來實現(xiàn)PDF轉(zhuǎn)WORD文檔,也就是說利用WORD來完成該任務(wù)。方法如下:

          用Adobe Reader 打開想轉(zhuǎn)換的PDF文件 ,接下來 選擇 “文件→打印”菜單,在打開的“打印”窗口中將 “打印機”欄中的名稱設(shè)置為 “Microsoft Office Document Image Writer”,確認(rèn)后將該PDF文 件輸出為 MDI格式的虛擬打印文件 。

          注: 如果沒有找到“Microsoft Office Document Image Writer”項,使用Office 2003安裝光盤中的“添加/刪除組件”更新安裝該組件,選中“Office 工具 Microsoft DRAW轉(zhuǎn)換器”。

          然后, 運行 “Microsoft Office Document Imaging”,并利用它來 打開 剛才保存的MDI文件,選擇“工具→ 將文本發(fā)送到Word ”菜單,在彈出的窗口中選中“ 在輸出時保持圖片版式不變 ”,確認(rèn)后系統(tǒng)會提示“必須在執(zhí)行此操作前重新運行 OCR 。這可能需要一些時間”,不管它, 確認(rèn) 即可。

          注: 對PDF轉(zhuǎn)DOC的識別率不是特別完美,轉(zhuǎn)換后會丟失原來的排版格式,所以轉(zhuǎn)換后還需要手工對其進行排版和校對工作。

          以上僅在 word2003 中可用,其他版本沒有Microsoft Office Document Image Writer。
          posted @ 2006-05-10 11:25 小小程序程序員混口飯吃 閱讀(385) | 評論 (0)編輯 收藏

          1.1 準(zhǔn)備工作
          一。 Tomcat 已正確配置與使用。
          二。軟件下載: log4j------http://www.apache.org/dist/jakarta/log4j/jakarta-log4j-1.2.8.zip

          1.2. Log4j
          簡介

          在強調(diào)可重用組件開發(fā)的今天,除了自己從頭到尾開發(fā)一個可重用的日志操作類外, Apache 為我們提供了一個強有力的日志操作包 -Log4j 。
          Log4j
          Apache 的一個開放源代碼項目,通過使用 Log4j ,我們可以控制日志信息輸送的目的地是控制臺、文件、 GUI 組件、甚至是套接口服務(wù)器、 NT 的事件記錄器、 UNIX Syslog 守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細(xì)致地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應(yīng)用的代碼。
          此外,通過 Log4j 其他語言接口,您可以在 C 、 C++ 、 .Net 、 PL/SQL 程序中使用 Log4j ,其語法和用法與在 Java 程序中一樣,使得多語言分布式系統(tǒng)得到一個統(tǒng)一一致的日志組件模塊。而且,通過使用各種第三方擴展,您可以很方便地將 Log4j 集成到 J2EE 、 JINI 甚至是 SNMP 應(yīng)用中。本文介紹的 Log4j 版本是 1.2.8 ,怎樣通過一個配置文件來靈活地進行配置,主要的應(yīng)用平臺是 Tomcat4.

          1.3
          。 Log4j 的配置。

          首先到 jakarta 下載一個 log4j 的組件。把 jakarta-log4j-1.2.8\dist\lib 下的 log4j-1.2.8.jar 文件 copy classpath 指定的目錄下!可以是 Tomcat common\lib 目錄下,也可以是你需要用到 log4j application 下的 lib 目錄。
          1.4
          Application 目錄下的 web.xml 文件加入以后代碼

          log4j
          com.apache.jakarta.log4j.Log4jInit

          log4j
          /WEB-INF/log4j.properties

          1


          這段代碼的意思是說,在 Tomcat 啟動時加載 com.apache.jakarta.log4j.Log4jInit 這個名叫 Log4jInit.class 這個類文件。其中 Log4jInit.class 的源代碼如下

          package com.apache.jakarta.log4j;
          import org.apache.log4j.PropertyConfigurator;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          public class Log4jInit extends HttpServlet {

          public void init() {
          String prefix = getServletContext().getRealPath("/");
          String file = getInitParameter("log4j");
          // if the log4j-init-file is not set, then no point in trying
          System.out.println("................log4j start");
          if(file != null) {
          PropertyConfigurator.configure(prefix+file);
          }
          }
          public void doGet(HttpServletRequest req, HttpServletResponse res) {
          }
          }
          這段代碼很簡單,可以看出,在加載的過程中,程序會讀取 /WEB-INF/log4j.properties 這個文件
          這個文件就是本文的重點,也就是 log4j 的配置文件。

          # Set root logger level to DEBUG and its only appender to A1
          #log4j
          中有五級 logger
          #FATAL 0
          #ERROR 3
          #WARN 4
          #INFO 6
          #DEBUG 7
          #
          配置根 Logger ,其語法為:
          #log4j.rootLogger = [ level ] , appenderName, appenderName, …
          log4j.rootLogger=INFO, A1 ,R
          #
          這一句設(shè)置以為著所有的 log 都輸出
          #
          如果為 log4j.rootLogger=WARN, 則意味著只有 WARN,ERROR,FATAL
          #
          被輸出, DEBUG,INFO 將被屏蔽掉 .
          # A1 is set to be a ConsoleAppender.
          #log4j
          Appender 有幾層如控制臺、文件、 GUI 組件、甚至是套接口服務(wù)器、 NT 的事件記錄器、 UNIX Syslog 守護進程等
          #ConsoleAppender
          輸出到控制臺
          log4j.appender.A1=org.apache.log4j.ConsoleAppender
          # A1
          使用的輸出布局,其中 log4j 提供 4 種布局 . org.apache.log4j.HTMLLayout (以 HTML 表格形式布局)
          #org.apache.log4j.PatternLayout
          (可以靈活地指定布局模式),
          #org.apache.log4j.SimpleLayout
          (包含日志信息的級別和信息字符串),
          #org.apache.log4j.TTCCLayout
          (包含日志產(chǎn)生的時間、線程、類別等等信息)

          log4j.appender.A1.layout=org.apache.log4j.PatternLayout
          #
          靈活定義輸出格式 具體查看 log4j javadoc org.apache.log4j.PatternLayout
          #d
          時間 ....
          log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
          #R
          輸出到文件 RollingFileAppender 的擴展,可以提供一種日志的備份功能。
          log4j.appender.R=org.apache.log4j.RollingFileAppender
          #
          日志文件的名稱
          log4j.appender.R.File=log4j.log
          #
          日志文件的大小
          log4j.appender.R.MaxFileSize=100KB
          #
          保存一個備份文件
          log4j.appender.R.MaxBackupIndex=1

          log4j.appender.R.layout=org.apache.log4j.TTCCLayout
          #log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

          配置以這里就差不多了,如果你想更深入了解配置文件的各個細(xì)節(jié),可以去查看 docs 。還有,在文章的最后面我們提供配置文件中一些主要的語法。下面我們來看看怎樣在程序中使用 log4j.

          1.4
            Log4j 的使用。
          使用 Log4j ,第一步就是獲取日志記錄器,這個記錄器將負(fù)責(zé)控制日志信息。其語法為:
          public static Logger getLogger( String name)

          必須在使用前要把這個類導(dǎo)入
          import org.apache.log4j.Logger;

          name
          一般是類文件的名字,如下:
          static Logger logger = Logger.getLogger ("".class.getName () ) ;

          您就可以輕松地使用不同優(yōu)先級別的日志記錄語句插入到您想記錄日志的任何地方,其語法如下:
          logger.debug ( Object message ) ;
          logger.info ( Object message ) ;
          logger.warn ( Object message ) ;
          logger.error ( Object message ) ;

          為什么這里要分級別的呢?試想一下,我們在寫程序的時候,為了調(diào)試程序,會在很多會出錯的地方加入大量的 logger.info(); 信息。當(dāng)然程序調(diào)試完畢,我們不需要這些輸出信息了,那怎么辦呢?以前的做法是把每個程序中的 logger.info 刪除,但這是不現(xiàn)實的,如果程序不大還可以,但如果程序很多,做這些事情就很煩人了。但因為 log4j 分級別了,當(dāng)我們不需要輸出這樣調(diào)試時用到的 log.info() 時,我們可以把輸出的級別調(diào)高,如調(diào)到 warn, error 級別,這樣 info 級別及以下的級別就不會出輸出了,是不是很方便的呢?

          其實除了這種使用方式, log4j 還有其它的使用方面,不需要配置文件,直接在程序中定義輸入出級別,層次等信息,如果要了解這方法的使用,可以參考文檔。

          1.5
          。附注:
          以下是配置文件的一些重要的語法
          定義配置文件

          其實您也可以完全不使用配置文件,而是在代碼中配置 Log4j 環(huán)境。但是,使用配置文件將使您的應(yīng)用程序更加靈活。

          Log4j
          支持兩種配置文件格式,一種是 XML 格式的文件,一種是 Java 特性文件(鍵 = 值)。下面我們介紹使用 Java 特性文件做為配置文件的方法:

          配置根 Logger ,其語法為:

          log4j.rootLogger = [ level ] , appenderName, appenderName, …
          其中, level 是日志記錄的優(yōu)先級,分為 OFF 、 FATAL 、 ERROR WARN 、 INFO 、 DEBUG ALL 或者您定義的級別。 Log4j 建議只使用四個級別,優(yōu)先級從高到低分別是 ERROR 、 WARN 、 INFO 、 DEBUG 。通過在這里定義的級別,您可以控制到應(yīng)用程序中相應(yīng)級別的日志信息的開關(guān)。比如在這里定義了 INFO 級別,則應(yīng)用程序中所有 DEBUG 級別的日志信息將不被打印出來。
          appenderName
          就是指定日志信息輸出到哪個地方。您可以同時指定多個輸出目的地。

          配置日志信息輸出目的地 Appender ,其語法為

          log4j.appender.appenderName = fully.qualified.name.of.appender.class
          log4j.appender.appenderName.option1 = value1

          log4j.appender.appenderName.option = valueN
          其中, Log4j 提供的 appender 有以下幾種:
          org.apache.log4j.ConsoleAppender
          (控制臺),
          org.apache.log4j.FileAppender
          (文件),
          org.apache.log4j.DailyRollingFileAppender
          (每天產(chǎn)生一個日志文件), org.apache.log4j.RollingFileAppender (文件大小到達指定尺寸的時候產(chǎn)生一個新的文件),
          org.apache.log4j.WriterAppender
          (將日志信息以流格式發(fā)送到任意指定的地方)

          配置日志信息的格式(布局),其語法為:

          log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
          log4j.appender.appenderName.layout.option1 = value1

          log4j.appender.appenderName.layout.option = valueN
          其中, Log4j 提供的 layout 有以下幾種:
          org.apache.log4j.HTMLLayout
          (以 HTML 表格形式布局),
          org.apache.log4j.PatternLayout
          (可以靈活地指定布局模式),
          org.apache.log4j.SimpleLayout
          (包含日志信息的級別和信息字符串),
          org.apache.log4j.TTCCLayout
          (包含日志產(chǎn)生的時間、線程、類別等等信息)

          posted @ 2006-05-09 16:06 小小程序程序員混口飯吃 閱讀(2148) | 評論 (0)編輯 收藏
          在nativeascii的時候一定要指定encoding:否則在windows下和linux下build的時候會出現(xiàn)問題,如果你在WINDOWS下測試,windows默認(rèn)的是GBK,
          而LINUX默認(rèn)的卻不是GBK,BUILD就會出問題,所以必須指定其encoding
          posted @ 2006-05-09 16:00 小小程序程序員混口飯吃 閱讀(531) | 評論 (1)編輯 收藏

          weblogic突然down掉了.大家?guī)兔纯丛?br />
          An unexpected exception has been detected in native code outside the VM.

          Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x7C9

          4AE22

          Function=RtlImpersonateSelf+0x3A5

          Library=C:\WINDOWS\system32\ntdll.dll

          ?

          Current Java thread:

          ? ??????at java.util.zip.ZipFile.getEntry(Native Method)

          ??????? at java.util.zip.ZipFile.getEntry(ZipFile.java:146)

          ??????? - locked <0x11b16650> (a weblogic.utils.classloaders.ClasspathClassFinde

          r$ZipFileWrapper)

          ??????? at weblogic.servlet.internal.WarClassFinder.getSource(WarClassFinder.jav

          a:236)

          ??????? at weblogic.servlet.internal.WebAppServletContext.getSource(WebAppServle

          tContext.java:4584)

          ??????? at weblogic.servlet.internal.WebAppServletContext.findIndexFile(WebAppSe

          rvletContext.java:4475)

          ??? ????at weblogic.servlet.internal.WebAppServletContext.getIndexServletStub(We

          bAppServletContext.java:4225)

          ??????? at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm

          pl.java:2639)

          ??????? at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)

          ??????? at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)

          ?

          Dynamic libraries:

          0x00400000 - 0x0040B000???????? C:\bea\JDK142~1\bin\java.exe

          0x7C920000 - 0x7C9B4000???????? C:\WINDOWS\system32\ntdll.dll

          0x7C800000 - 0x7C91C000? ???????C:\WINDOWS\system32\kernel32.dll

          0x77DA0000 - 0x77E49000???????? C:\WINDOWS\system32\ADVAPI32.dll

          0x77E50000 - 0x77EE1000???????? C:\WINDOWS\system32\RPCRT4.dll

          0x77BE0000 - 0x77C38000???????? C:\WINDOWS\system32\MSVCRT.dll

          0x08000000 - 0x08139000? ???????C:\bea\JDK142~1\jre\bin\client\jvm.dll

          0x77D10000 - 0x77D9F000???????? C:\WINDOWS\system32\USER32.dll

          0x77EF0000 - 0x77F36000???????? C:\WINDOWS\system32\GDI32.dll

          0x76B10000 - 0x76B3A000???????? C:\WINDOWS\system32\WINMM.dll

          0x76300000 - 0x7631D000???????? C:\WINDOWS\system32\IMM32.DLL

          0x62C20000 - 0x62C29000???????? C:\WINDOWS\system32\LPK.DLL

          0x73FA0000 - 0x7400B000???????? C:\WINDOWS\system32\USP10.dll

          0x10000000 - 0x10007000???????? C:\bea\JDK142~1\jre\bin\hpi.dll

          0x008A0000 - 0x008AE000??????? ?C:\bea\JDK142~1\jre\bin\verify.dll

          0x008B0000 - 0x008C9000???????? C:\bea\JDK142~1\jre\bin\java.dll

          0x008D0000 - 0x008DD000???????? C:\bea\JDK142~1\jre\bin\zip.dll

          0x02C80000 - 0x02C9C000???????? C:\bea\JDK142~1\jre\bin\jdwp.dll

          0x06CA0000 - 0x06CA5000?? ??????C:\bea\JDK142~1\jre\bin\dt_socket.dll

          0x71A20000 - 0x71A37000???????? C:\WINDOWS\system32\ws2_32.dll

          0x71A10000 - 0x71A18000???????? C:\WINDOWS\system32\WS2HELP.dll

          0x719C0000 - 0x719FE000???????? C:\WINDOWS\system32\mswsock.dll

          0x60FD0000 - 0x61025000???????? C:\WINDOWS\system32\hnetcfg.dll

          0x71A00000 - 0x71A08000???????? C:\WINDOWS\System32\wshtcpip.dll

          0x07090000 - 0x0709F000???????? C:\bea\jdk142_05\jre\bin\net.dll

          0x76EF0000 - 0x76F17000???????? C:\WINDOWS\system32\DNSAPI.dll

          0x76F80000 - 0x76F88000???????? C:\WINDOWS\System32\winrnr.dll

          0x76F30000 - 0x76F5C000???????? C:\WINDOWS\system32\WLDAP32.dll

          0x76F90000 - 0x76F96000???????? C:\WINDOWS\system32\rasadhlp.dll

          0x071B0000 - 0x071B8000???????? C:\bea\jdk142_05\jre\bin\nio.dll

          0x07CD0000 - 0x07CD6000???????? C:\bea\jdk142_05\jre\bin\ioser12.dll

          0x07DE0000 - 0x07DE5000???????? C:\bea\weblogic81\server\bin\stackdump.dll

          0x07E30000 - 0x07E35000???????? C:\bea\weblogic81\server\bin\wlntio.dll

          0x76C60000 - 0x76C88000???????? C:\WINDOWS\system32\imagehlp.dll

          0x68D60000 - 0x68E01000???????? C:\WINDOWS\system32\DBGHELP.dll

          0x77BD0000 - 0x77BD8000???????? C:\WINDOWS\system32\VERSION.dll

          0x76BC0000 - 0x76BCB000???????? C:\WINDOWS\system32\PSAPI.DLL

          ?

          Heap at VM Abort:

          Heap

          ?def new generation?? total 2304K, used 1362K [0x10010000, 0x10290000, 0x10f7000

          0)

          ? eden space 2048K,? 59% used [0x10010000, 0x101407b8, 0x10210000)

          ? from space 256K,? 56% used [0x10250000, 0x10274400, 0x10290000)

          ? to?? space 256K,?? 0% used [0x10210000, 0x10210000, 0x10250000)

          ?tenured generation?? total 30272K, used 29848K [0x10f70000, 0x12d00000, 0x1c810

          000)

          ?? the space 30272K,? 98% used [0x10f70000, 0x12c961f0, 0x12c96200, 0x12d00000)

          ?compacting perm gen? total 27904K, used 27876K [0x1c810000, 0x1e350000, 0x24810

          000)

          ?? the space 27904K,? 99% used [0x1c810000, 0x1e3493b0, 0x1e349400, 0x1e350000)

          ?

          Local Time = Tue Apr 25 13:46:19 2006

          Elapsed Time = 327

          #

          # The exception above was detected in native code outside the VM

          #

          # Java VM: Java HotSpot(TM) Client VM (1.4.2_05-b04 mixed mode)

          #

          # An error report file has been saved as hs_err_pid2616.log.

          # Please refer to the file for further information.

          #

          posted @ 2006-04-26 09:08 小小程序程序員混口飯吃 閱讀(935) | 評論 (0)編輯 收藏


          tomcat去調(diào)用weblogic上的EJB服務(wù),拋出的異常,好像是tomcat 與weblogic之間的認(rèn)證造成的,
          ejb的調(diào)用是成功的,拋出的異常并沒有影響到程序的執(zhí)行,請大家?guī)兔纯词裁磫栴},mbean的問題,是不是tomcat的某些組件的配置問題?

          006-4-19 14:55:38 org.apache.commons.modeler.Registry registerComponent

          嚴(yán)重 : Error registering Catalina:type=RequestProcessor,worker=http-8080,name=Htt

          Request3

          ava.security.AccessControlException: Access denied (mx4j.server.MBeanTrustPermi

          sion register): MBean class org.apache.commons.modeler.BaseModelMBean is not tr

          sted for registration

          ?????? at mx4j.server.interceptor.SecurityMBeanServerInterceptor.checkTrustRegi

          tration(SecurityMBeanServerInterceptor.java:156)

          ?????? at mx4j.server.interceptor.SecurityMBeanServerInterceptor.registration(S

          curityMBeanServerInterceptor.java:116)

          ?????? at mx4j.server.interceptor.DefaultMBeanServerInterceptor.registration(De

          aultMBeanServerInterceptor.java:113)

          ?????? at mx4j.server.interceptor.DefaultMBeanServerInterceptor.registration(De

          aultMBeanServerInterceptor.java:113)

          ?????? at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.regi

          tration(ContextClassLoaderMBeanServerInterceptor.java:108)

          ?????? at mx4j.server.MBeanServerImpl.registerImpl(MBeanServerImpl.java:1051)

          ?????? at mx4j.server.MBeanServerImpl.registerMBeanImpl(MBeanServerImpl.java:10

          2)

          ?????? at mx4j.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:978)

          ?????? at org.apache.commons.modeler.Registry.registerComponent(Registry.java:8

          1)

          ?????? at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.init(

          ttp11Protocol.java:670)

          ?????? at org.apache.tomcat.util.net.TcpWorkerThread.getInitData(PoolTcpEndpoin

          .java:527)

          ?????? at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP

          ol.java:672)

          ?????? at java.lang.Thread.run(Thread.java:534)

          006-4-19 14:55:38 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandl

          r init

          警告 : Error registering request

          006-4-19 14:55:47 org.apache.commons.modeler.Registry registerComponent

          嚴(yán)重 : Error registering Catalina:type=RequestProcessor,worker=http-8080,name=Htt

          Request4

          ava.security.AccessControlException: Access denied (mx4j.server.MBeanTrustPermi

          sion register): MBean class org.apache.commons.modeler.BaseModelMBean is not tr

          sted for registration

          ?????? at mx4j.server.interceptor.SecurityMBeanServerInterceptor.checkTrustRegi

          tration(SecurityMBeanServerInterceptor.java:156)

          ?????? at mx4j.server.interceptor.SecurityMBeanServerInterceptor.registration(S

          curityMBeanServerInterceptor.java:116)

          ?????? at mx4j.server.interceptor.DefaultMBeanServerInterceptor.registration(De

          aultMBeanServerInterceptor.java:113)

          ?????? at mx4j.server.interceptor.DefaultMBeanServerInterceptor.registration(De

          aultMBeanServerInterceptor.java:113)

          ?????? at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.regi

          tration(ContextClassLoaderMBeanServerInterceptor.java:108)

          ?????? at mx4j.server.MBeanServerImpl.registerImpl(MBeanServerImpl.java:1051)

          ?????? at mx4j.server.MBeanServerImpl.registerMBeanImpl(MBeanServerImpl.java:10

          2)

          ?????? at mx4j.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:978)

          ?????? at org.apache.commons.modeler.Registry.registerComponent(Registry.java:8

          1)

          ?????? at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.init(

          ttp11Protocol.java:670)

          ?????? at org.apache.tomcat.util.net.TcpWorkerThread.getInitData(PoolTcpEndpoin

          .java:527)

          ?????? at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP

          ol.java:672)

          ?????? at java.lang.Thread.run(Thread.java:534)

          006-4-19 14:55:47 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandl

          r init

          警告 : Error registering request

          ?

          posted @ 2006-04-20 08:54 小小程序程序員混口飯吃 閱讀(1126) | 評論 (1)編輯 收藏
          在新的項目中,領(lǐng)導(dǎo)要求所有的圖片樣式表都必須使用相對路徑,../../來回寫很麻煩,跟我要求用絕對路徑/jsp/images,結(jié)果被領(lǐng)導(dǎo)批駁一番,唉,領(lǐng)導(dǎo)總是對的,誰叫俺是小兵呢

          ? 俺認(rèn)為對的理由是

          ?? (1)用絕對路徑不用考慮考慮部署帶來的問題
          ?? (2)XP開發(fā)過程中,需要快速重構(gòu),特別是調(diào)整文件夾和模塊的時候,圖片樣式表都不用改動
          ?? (3)在SERVLET和JSP之間forward的時候,servlet的context path 跟JSP的context不可能永遠(yuǎn)保持一致,會導(dǎo)致圖片和樣式表的路徑有誤,當(dāng)你用struts的時候/login/login.do,與/jsp/login/login.jsp的conetext path不一致,會出現(xiàn)圖片路徑錯誤,要避免這個問題,必須調(diào)整.do 為/jsp/login/login.do,或者直接調(diào)整module 為config/jsp,才能調(diào)整過來.

          ?以上3點就是俺的理由,不知道俺錯了還是領(lǐng)導(dǎo)錯了
          posted @ 2006-04-19 20:54 小小程序程序員混口飯吃 閱讀(599) | 評論 (2)編輯 收藏

          Ejb 的調(diào)用問題

          ?

          ?

          ? 環(huán)境:在 web.xml 中定義了 ejb 的方式 islocal,provider_url ,可以遠(yuǎn)程調(diào)用,也可以本地調(diào)用 , 設(shè)計在 servlet plugin 里面緩存了 home 的接口,然后進行遠(yuǎn)程的 2 weblogic 之間使用, 1 臺部署 war 包,另外一臺部署 ejb 應(yīng)用,可以調(diào)用,沒有任何問題 . 按理說吧 wlclient.jar 打到 war 里面,然后把 WAR 部署在 Tomcat 上也能調(diào)用,當(dāng) servlet 起來的時候通過 plugin home 接口緩存起來,一樣能運行,但是拋出異常。反復(fù)查找原因,原來是 tomcat classloader 有問題,在 plugin 緩存的時候并沒有找到 wlclient 的包 ( 我個人認(rèn)為 ) ,所以改動一下緩存 home 接口的方式,在 plugin 里面不實行緩存,在第一調(diào)用的時候緩存, tomcat 啟動正常,程序運行也正常,問題得到解決,用的是weblogic 8.1 tomcat 4.1

          posted @ 2006-04-19 08:51 小小程序程序員混口飯吃 閱讀(3016) | 評論 (3)編輯 收藏
          僅列出標(biāo)題
          共11頁: First 上一頁 3 4 5 6 7 8 9 10 11 下一頁 
          主站蜘蛛池模板: 卢龙县| 即墨市| 东乌| 湘西| 明溪县| 明水县| 阳新县| 醴陵市| 万年县| 文水县| 涿鹿县| 保康县| 马鞍山市| 额敏县| 高州市| 大同市| 阳朔县| 乌审旗| 南部县| 利辛县| 城口县| 耿马| 泰来县| 万宁市| 湟中县| 尤溪县| 永州市| 仁布县| 禄丰县| 砚山县| 卓尼县| 韩城市| 陇川县| 岑巩县| 中山市| 伊川县| 高邑县| 高陵县| 上饶市| 海兴县| 安岳县|