SAXParseException: Content is not allowed in prolog
摘要: 最近在做一些批處理XML的項目,通過Spring Batch讀取XML,然后將數據存入數據庫。XML是客戶方通過AS400的技術將數據讀出并寫入到文件的,我不了解AS400處理這類問題是不是很麻煩,每次XML需要做些變動的時候,客戶總是表現的很為難,并且都是很久才能給到新的XML,還總是有這樣那樣的問題,甚至都不是一個有效的XML。這兩天總算是改的差不多了,但遇到了好幾次這樣的exception: org.xml.sax.SAXParseException: Content is not allowed in prolog。以前也接觸過不少XML,可是這種問題還真是沒遇到過。
出現這種問題,有幾種可能性:
閱讀全文
使用ARA實現GlassFish中Web應用的資源分配
摘要: 在企業級的應用中,經常會存在一些訪問非常頻繁的web應用,這些web模塊很容易就會將GlassFish的HTTP Thread全部占滿,這時其它的web應用就始終在queue中等待獲取HTTP的connection,直至超時。在GlassFish中不能對web應用進行資源分配,如果是EJB組件,可以采取Request Partitioning的方式來分配模塊所使用的資源,對于Web應用只有等到V3版本發布時才具備資源分配的功能了,對于SUN現在的局面,不知道要等到什么時候才會發布這個feature,好在已從SUN離職的Grizzly的開發者Jeanfrancois在V2中就已經實現了該功能,可以通過配置的方式實現web資源的分配。
閱讀全文
GlassFish移植Tips
摘要: 作為一款商用的Application Server,Weblogic確實非常成熟,非常強大,提供了很多特性,以幫助提高程序的運行效率,但是太笨重了,訪問Admin Console極慢;GlassFish作為一款開源的Application Server,非常適合開發者使用,速度很快,并且嚴格遵照J2EE的標準,以達到平臺獨立的特性,但是確實簡陋了點,只提供了最標準的實現,并且還存在一些明顯的BUG,社區不夠活躍,文檔、資源都很少,可能是現在SUN處于動亂期,連商業Support都很難聯系到。下面是我在做移植工作時,隨筆記下來的一些小經驗,讓其他的同學們少受一些折磨,少踩一些坑。
閱讀全文
GlassFish Components
摘要: 本文對GlassFish的組件結構進行了較詳細的描述。GlassFish由一個或多個domain組成,每個domain和一個administration server關聯,并可包含0到多個standalone instance或者cluster。每個cluster有一個或多個同類型的instance,一個instance運行于一個單獨的JVM 中,domain中的instance可運行在不同的物理機器上。
閱讀全文
StartUp Choice: ServletContextListener vs Servlet
摘要: 最近在做將項目從Weblogic移植到GlassFish的工作,遇到的其中一個比較頭疼的問題就是Weblogic的LifeCycleManager。Weblogic提供了一個ApplicationLifecycleListener類可以在application部署和卸載時做一些工作,這是Weblogic獨有的特性,并不是J2EE的規范。GlassFish中目前提供的LifeCycleListener不能滿足該要求,它只能在GlassFish啟動和停止的時候去做工作,而且,采用了這種方式,等于又將我們的應用綁定在了GlassFish上。最終決定采用ServletContextListener作為臨時解決方案。
閱讀全文
Spring延遲加載EJB代理
摘要: 在Spring中提供了兩個代理工廠Bean來代理EJB的訪問: LocalStatelessSessionProxyFactoryBean和SimpleRemoteStatelessSessionProxyFactoryBean。當任何一個EJB代理工廠Bean在ApplicationContext中使用時,Bean工廠會預先實例化單實例的 Bean。這通常是一件好事,但它可能會導致EJB代理工廠Bean在EJB被綁定到名字服務之前,試圖查找EJB的home接口。通過屬性的設置,可確保這個EJB在裝載時不會試圖查找home接口,直到它首次被使用為止,這將會留有足夠的時間來把EJB綁定到名稱服務上。
閱讀全文
JMS - 異步消息的使者
摘要: Java消息服務(JMS)實現了異步消息的傳遞,在企業級的應用中,極大的簡化了異步通信系統的實現,使用消息傳遞的優點在于保持了系統的松散耦合。本文對JMS兩種模式的使用做了對比性的講解,開始你的JMS使用旅程吧。
閱讀全文
Standalone Client Lookup JNDI from the GlassFish
摘要: 獨立運行的java程序可通過JNDI訪問GlassFish中配置的資源,而不需要運行在GlassFish中,便于一些J2EE程序的運行,比如JMS。
閱讀全文
Weblogic中獲取Server信息
摘要: 通過MBean獲取weblogic的server信息。
閱讀全文
SLF4J+logBack, 日志領域中的新秀
摘要: Ceki Gülcü創造了日志領域界著名的Log4J,現在又實現一個“簡單的日志前端接口(Fa?ade)”- SLF4J,和一個“可靠、通用、快速而又靈活的Java日志框架”- LOGBack。作為日志領域中的新秀,已經有種顛覆領域的趨勢了。
閱讀全文
Checkstyle的配置詳解
摘要: Checkstyle是一款檢查java程序代碼樣式的工具,可以有效的幫助我們檢視代碼以便更好的遵循代碼編寫標準,特別適用于小組開發時彼此間的樣式規范和統一。Checkstyle提供了高可配置性,以便適用于各種代碼規范,所以除了可以使用它提供的sun的代碼標準外,你也可以定制自己的標準。我們可以在eclipse中安裝checkstyle的插件,來方便我們的使用。
Checkstyle可以讓我們養成書寫良好代碼風格的習慣,代碼的整潔也減少了很多bad smell的產生。使用checkstyle的過程中可能需要經常的調整配置文件,有些check過于嚴格,可以根據實際情況取消一些代碼檢查。
閱讀全文
利用JPDA進行Remote Debug
摘要: 最近協助QA測試我們基于EJB開發的系統,由于應用程序在遠程環境下運行,并且在控制臺和日志文件中沒有輸出足夠的有用信息,導致調試工作很困難。這時發現了Sun的java平臺調試架構(Java Platform Debugger Architecture),它能夠對一個運行中的java應用程序進行全方位調試提供極大的幫助。
閱讀全文
HttpClient之上傳文件
摘要: 今天在為公司寫網絡硬盤的壓力測試工具時使用了HttpClient,比較容易的解決了登錄、上傳、下載、列表等功能的測試,但也遇到了一些問題未解決。
閱讀全文
HttpClient的一些技巧
摘要: HttpClient中一些常見的問題及解決方法。
閱讀全文