在JBoss的文档中,宣称JBoss4.0版本是业界第一个支持J2EE1.4规范的应用服务器。以前公司的很多程序都是在JBoss3.2.x的版本上开发的,所以就想把他们移植到JBoss4.0.2中。于是,我就把预案原来程序原封不动的copy到JBoss4.0.2的default/deploy目录中,但是运行时却怎么也出不来结果。最后通过一步步跟踪,发现程序在获得EJB的home接口时发生了异常,异常类型为ClassCastException——类型转换错误。
在JBoss的服务器类型中一般会包含三种配置:default、minimal和all,这种配置方式在3.2和4.0.1+中都是一致,但是有一个版本例外,那就是4.0.0。在4.0.0中包含了4种服务器配置:default、minimal、all和standard。在4.0.0中standard配置就相当于3.2和4.0.1+中的default配置,而4.0.0中的defaut配置和standard配置是一样的,除了default完全兼容于J2EE1.4规范。在3.2和4.0.1+的default配置中以及4.0.0的standard配置中,JBoss在它的统一标准的类装载器里启动所有的J2EE服务。这样,当所有组件都发布在同一个JVM中时,它就会获得最优化的性能。但是,在JBoss的这种配置中,被发布的应用程序并没有被严格划分。于是就导致这种配置并不能完全适应J2EE1.4的规范。因此当我们把程序直接copy过来时才会发生异常。为了使这种配置完全适应J2EE规范,我们必须按照以下的步骤修改配置文件的设置,使范围类装载行为和通过值调用的JNDI查找行为起作用。
第一步,编辑conf/jboss-services.xml文件,将NamingService的CallByValue属性的值设置为true。
<mbean code="org.jboss.naming.NamingService"
name="jboss:service=Naming">
<!-- The call by value mode. true if all lookups are unmarshalled using
the caller's TCL, false if in VM lookups return the value by reference.
-->
<attribute name="CallByValue">true</attribute>
...
</mbean>
第二步,编辑deploy/ear-deployer.xml文件,设置Isolated和CallByValue属性的值为true。
<server>
<!-- EAR deployer, remove if you are not using ear deployments -->
<mbean code="org.jboss.deployment.EARDeployer"
name="jboss.j2ee:service=EARDeployer">
<!-- A flag indicating if ear deployments should have their own scoped
class loader to isolate their classes from other deployments.
-->
<attribute name="Isolated">true</attribute>
<!-- A flag indicating if the ear components should have in VM call
optimization disabled.
-->
<attribute name="CallByValue">true</attribute>
</mbean>
</server>
最后,编辑deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml文件,设置Java2ClassLoadingCompliance和UseJBossWebLoader属性的值为true。
<server>
<mbean code="org.jboss.web.tomcat.tc5.Tomcat5"
name="jboss.web:service=WebServer">
<!-- Get the flag indicating if the normal Java2 parent first class
loading model should be used over the servlet 2.3 web container first
model.
-->
<attribute name="Java2ClassLoadingCompliance">true</attribute>
<attribute name="LenientEjbLink">true</attribute>
<!-- A flag indicating if the JBoss Loader should be used. This loader
uses a unified class loader as the class loader rather than the tomcat
specific class loader.
-->
<attribute name="UseJBossWebLoader">true</attribute>
经过以上步骤地修改以后,这个配置就完全适应J2EE规范了,升级时出现的问题也就顺利解决了。
来自:
中国移动开发者社区
分享到:
相关推荐
根据提供的文件信息,我们可以总结出《JBoss Administration and Development, Third Edition (3.2.x Series)》这本书的主要知识点。本书由Scott Stark与JBoss Group共同编写,并于2003年进行了更新,针对的是JBoss ...
JBOSS-J2EE.JAR JBOSS-J2EE.JAR JBOSS-J2EE.JAR JBOSS-J2EE.JAR JBOSS-J2EE.JAR JBOSS-J2EE.JAR
《教程:使用JBOSS和ECLIPSE构建J2EE应用程序》是针对J2EE开发的一份详细学习资源,旨在帮助开发者在21天内掌握J2EE的基础知识和实践技能。本教程结合了理论讲解与实际操作,通过使用JBOSS应用服务器和ECLIPSE集成...
J2EE发展趋势 案例研究 J2EE Tutorial Java Pet Store Java Adventure Builder 钟情JBoss 4.x 全书内容安排 1 安装JBoss 4.x 2 安装JBoss-IDE 1.4.0 3 基于JBoss 4.x的JSF应用开发 ...
标题中的"activemq-ra-3.2.jar.zip"是一个归档文件,它包含了ActiveMQ的一个特定版本(3.2)的资源适配器(Resource Adapter,简称RA)。这个文件被压缩成ZIP格式,便于传输和存储。在Java环境中,JAR(Java Archive...
jbosstools-4.0.1.Final JBoss Tools 原名为JBoss IDE,现在统一改名为 JBossTools,JBoss Tools包含了JSF,Hibernate,JBossSeam,jBPM等一系列的开发工具。
jboss-j2ee.jarjboss-j2ee.jarjboss-j2ee.jar
12. **社区支持**:作为开源项目,JBoss拥有活跃的社区,提供了大量的文档、示例和问题解答,方便用户学习和解决问题。 在使用"jboss-4.0.5.GA.zip"这个压缩包时,用户需要先将其解压,然后按照官方文档或者社区...
《基于JBoss 4.x的J2EE 1.4应用开发指南》是一本专为开发者设计的详尽教程,旨在帮助读者掌握如何在JBoss 4.x应用服务器上开发和部署J2EE 1.4标准的应用程序。这本书深入探讨了JBoss 4.x与J2EE 1.4规范的集成,以及...
hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.2.0.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar jackson-annotations-2.5.0.jar jackson-core-2.5.0.jar jackson-databind-...
ejb3 and jboss 多本合一(three) Using @Service annotation in eclipse JBoss中文文档.pdf JBOSS使用指南.doc JBOSS架构分析.doc JBOSS对EJB3_0的扩展 jbossgs4x.pdf JBoss-EJB3.0实例教程.pdf JBoss.in.Action....
### 开发基于JBoss的J2EE应用 #### 一、引言 JBoss作为一款高性能的开源J2EE应用服务器,在业界获得了广泛的认可。它不仅提供了强大的EJB容器功能,还具有诸多特色优势,例如免安装特性、基于JMX架构、支持热部署...
java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object; 错误解决办法
在解决问题的过程中,标签中涉及的“jboss jdk java j2ee 冲突”暗示了解决方案可能涉及到调整JDK版本、JBoss配置或J2EE(Java 2 Platform, Enterprise Edition)规范的正确实现。J2EE是Java平台的一个版本,专为...
【JBoss 应用服务器详解】 JBoss 是一个开源的、基于 J2EE(Java 2 Platform, Enterprise Edition)的应用服务器,由全球开发者社区共同维护和开发。它最初以 LGPL 许可协议发布,允许商业应用免费使用。2006年,...
赠送jar包:jboss-threads-3.1.0.Final.jar; 赠送原API文档:jboss-threads-3.1.0.Final-javadoc.jar; 赠送源代码:jboss-threads-3.1.0.Final-sources.jar; 赠送Maven依赖信息文件:jboss-threads-3.1.0.Final....
总的来说,Jboss+Tomcat的组合提供了一个免费且功能齐全的J2EE开发环境。虽然手动配置可能需要花费更多时间,但这也为开发者提供了更深入学习J2EE架构的机会。对于初学者和开发者来说,这是一个很好的实践平台,可以...
在本文中,我们将深入探讨如何使用Eclipse IDE与JBoss应用程序服务器(版本7.x)来开发和部署一个基于EJB 3.x的简单企业级Java应用程序。EJB(Enterprise JavaBeans)是Java平台上的核心组件,它提供了一种标准的...
activation.jar javax.servlet.jar javax.servlet.jsp.jar jboss-j2ee.jar jboss-jaxrpc.jar jboss-jsr77.jar jboss-saaj.jar mail.jar namespace.jar xml-apis.jar