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中一些常见的问题及解决方法。
阅读全文