`

关于jboss与j2ee1.4不友好的问题。

阅读更多
今天在做项目的时候,来了个奇怪的异常,具体异常如下:
java.lang.LinkageError: loader constraint violation: 

google了一会发现原来是jboss的类加载器的问题。因为同一个类被不同的类加载器所加载导致的,所以要按照一下步骤来修改几个配置文件就OK了。

First, edit the conf/jboss-service.xml file and set the NamingService CallByValue to 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>





Second, edit the deploy/ear-deployer.xml file and set the Isolated and CallByValue attributes to 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>






Last, edit the deploy/jbossweb-tomcat50.sar/META-INF/jboss-service.xml file and set the Java2ClassLoadingCompliance and UseJBossWebLoader attributes to false:


<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">false</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">false</attribute>

        ...




注意:如果是在jboss-4.2.1.GA下,第三步可以不用改了,默认就是false.






3
3
分享到:
评论

相关推荐

    基于 JBoss 4.x的 J2EE 1.4 应用 开发指南

    这本书深入探讨了JBoss 4.x与J2EE 1.4规范的集成,以及如何利用这一框架来构建高效、可扩展的企业级解决方案。 J2EE(Java 2 Platform, Enterprise Edition)1.4是Oracle公司推出的一套用于开发和部署多层分布式...

    jboss-4.0.2

    1. **J2EE兼容性**:JBoss 4.0.2遵循J2EE 1.4规范,提供了对EJB(Enterprise JavaBeans)、JMS(Java Message Service)、JTA(Java Transaction API)等核心服务的支持,为开发者构建企业级应用提供了坚实的基础。...

    JBOSS中文文档 CSDN资源下载

    《JBoss中文文档 CSDN资源下载》是针对JBoss应用程序服务器的一份详细教程,旨在帮助用户快速掌握如何在JBoss 4.0.x版本上部署和运行基于J2EE 1.4的应用程序。这份文档是中文版,对于国内的开发者来说,无疑提供了...

    J2ee开发环境配置(weblogic)

    当在MyEclipse中创建使用J2EE 1.4标准的Web项目时,会因Servlet版本不匹配导致部署失败。J2EE 1.4使用Servlet 2.4规范,这在`web.xml`部署描述符中有所体现。因此,如果在Tomcat或JBoss上能正常运行的JSP程序在...

    JBoss 4.0

    标题与描述概述的知识点主要围绕JBoss 4.0这一版本的应用服务器,特别是其作为一本中文的详尽教程,旨在帮助读者深入理解JBoss 4.0及其在J2EE 1.4环境下的应用。以下是对这些知识点的详细解析: ### JBoss 4.0简介 ...

    J2EE初学者要理解的几个问题

    J2EE 1.4是当时最新的版本,现在已经被Java EE(Enterprise Edition)替代,并发展到了更高的版本,如Java EE 8。主流的应用服务器包括IBM WebSphere Application Server、BEA WebLogic Server、JBoss、Oracle ...

    jboss-4.2.3.GA.zip

    在使用【JBoss 5.0及更高版本】进行Web服务开发时,可能会遇到与早期版本不兼容的问题。【描述】中提到的四个jar文件——`jboss-jaxws.jar`、`jboss-jaxws-ext.jar`、`jboss-jaxrpc.jar`和`jboss-saaj.jar`,都是...

    中间件jboss环境搭建01

    - **JBoss 4.x**:支持JDK 1.4及以上版本。 - **JBoss 5.x**:建议使用JDK 1.5及以上版本。 #### 三、JDK安装配置步骤 1. **JDK选择**:根据JBoss版本选择合适的JDK版本。例如,如果使用的是JBoss 5.x,则应该选择...

    深入浅出JBoss Seam.pdf

    ### 深入浅出JBoss Seam:整合与强化Java EE框架 #### 一、引言 JBoss Seam是一款基于Java EE 5.0的轻量级框架,它旨在简化企业级Web应用的开发过程,并增强应用的可扩展性和开发者的生产力。本文将详细介绍JBoss ...

    深入浅出JBoss Seam.doc

    Seam可以在任何Java EE 5.0服务器上部署,甚至可以兼容J2EE 1.4平台。 通过Seam,开发者能够构建更为简洁的概念模型,减少样板代码,提高应用程序的可维护性和可扩展性。Seam提供的JSF组件标签和注解增强了Web友好...

    weblogic配置

    J2EE 1.4引入了Servlet 2.4规范,导致在使用J2EE 1.4标准创建的Web项目中,web.xml部署描述符的DTD引用会与WebLogic 8的期望格式不符,从而引发部署异常。 2. **JDK版本兼容性**: - WebLogic 8不支持JDK 1.5,...

    J2EE初学者需要理解的问题

    **J2EE初学者需要理解的问题** J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems(后来被Oracle收购)推出的企业级应用平台,基于Java技术,旨在提供一套规范和标准,以便开发、部署和管理分布式...

    jBoss+tomcat学习笔记大全,jBoss+tomcat的帮助文档

    ### jBoss + Tomcat 学习笔记大全及帮助文档概览...以上内容涵盖了 jBoss + Tomcat 的基本安装、配置、EJB 示例开发与部署以及常见问题解决方法等关键知识点。希望对正在学习或使用 jBoss 和 Tomcat 的开发者有所帮助。

Global site tag (gtag.js) - Google Analytics