当前位置: 首页 > 知识库问答 >
问题:

使用apache-ivy:java.lang.IncompatibleClassChangeError从3.0.5迁移到Spring 3.1:

郑锦
2023-03-14

在过去的两个星期里,我一直在努力用Apache Ivy来管理依赖关系,但是每个人在网上谈论的明显的易用性(一旦maven/gradle/apache-ivy用于DM)已经避开了我。有人能帮忙看看我做错了什么吗?我真的很感激。

我正在尝试将现有的Spring/JPA Hibernate应用程序迁移到最新的Spring和Hibernate发行版:

Spring 3.1.2
Spring Security 3.1.1
Hibernate 4.1

我的环境:

Eclipse Helios
Tomcat 7.23

ivy.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">    <info
    organisation=""
    module="FocusIvy"
    status="integration">
</info>
<dependencies>  
    <dependency org="org.hibernate" name="com.springsource.org.hibernate.ejb" rev="4.1.0.Final" />
    <dependency org="org.hibernate" name="com.springsource.org.hibernate.annotations" rev="3.4.0.GA-A" />
    <dependency org="org.hibernate.common" name="com.springsource.org.hibernate.annotations.common" rev="4.1.0.Final" />
    <dependency org="org.hibernate" name="com.springsource.org.hibernate" rev="4.1.0.Final" />
    <dependency org="org.hibernate" name="com.springsource.org.hibernate.core" rev="4.1.0.Final" />
    <dependency org="org.hibernate" name="com.springsource.org.hibernate.validator" rev="4.2.0.Final" /> 

    <dependency org="org.springframework" name="org.springframework.core" rev="3.1.2.RELEASE" />
    <dependency org="org.springframework" name="org.springframework.beans" rev="3.1.2.RELEASE" />
    <dependency org="org.springframework" name="org.springframework.context" rev="3.1.2.RELEASE" />
    <dependency org="org.springframework" name="org.springframework.context.support" rev="3.1.2.RELEASE" />
    <dependency org="org.springframework" name="org.springframework.transaction" rev="3.1.2.RELEASE" />
    <dependency org="org.springframework" name="org.springframework.jdbc" rev="3.1.2.RELEASE" />
    <dependency org="org.springframework" name="org.springframework.expression" rev="3.1.2.RELEASE" />  
    <dependency org="org.springframework" name="org.springframework.aop" rev="3.1.2.RELEASE" />
    <dependency org="org.springframework" name="org.springframework.web" rev="3.1.2.RELEASE" /> 
    <dependency org="org.springframework" name="org.springframework.web.servlet" rev="3.1.2.RELEASE" /> 
    <dependency org="org.springframework" name="org.springframework.orm" rev="3.1.2.RELEASE" />

    <dependency org="org.springframework.security" name="org.springframework.security.core" rev="3.1.1.RELEASE" />      
    <dependency org="org.springframework.security" name="org.springframework.security.aspects" rev="3.1.1.RELEASE" />
    <dependency org="org.springframework.security" name="org.springframework.security.taglibs" rev="3.1.1.RELEASE" />
    <dependency org="org.springframework.security" name="org.springframework.security.web" rev="3.1.1.RELEASE" />
    <dependency org="org.springframework.security" name="org.springframework.security.annotation" rev="2.0.6.RELEASE" />

    <dependency org="javax.activation" name="com.springsource.javax.activation"
            rev="1.1.1" />
    <dependency org="net.sourceforge.cglib" name="com.springsource.net.sf.cglib" rev="2.2.0" />             
</dependencies> 
</ivy-module>

ivysettings.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<ivysettings>
<settings defaultResolver="defaultChain"
    defaultConflictManager="all" />

<resolvers>
    <url name="com.springsource.repository.bundles.release">
        <ivy
            pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
        <artifact
            pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
    </url>

    <url name="com.springsource.repository.bundles.external">
        <ivy
            pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
        <artifact
            pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
    </url>
    <chain name="defaultChain" returnFirst="true">
        <resolver ref="com.springsource.repository.bundles.release" />
        <resolver ref="com.springsource.repository.bundles.external" />
    </chain>
</resolvers>
</ivysettings>

Tomcat服务器启动(和应用程序部署)会导致一系列错误:

 WARNING: Unable to load class     [org.springframework.instrument.classloading.jboss.JBossMCAdapter] to check against the     @HandlesTypes annotation of one or more ServletContentInitializers.
 java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2823)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1160)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1655)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533)
at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:1988)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1951)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1840)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1808)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1794)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1214)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:828)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:302)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5148)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1525)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1515)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
 Oct 16, 2012 2:31:42 PM org.apache.catalina.startup.ContextConfig checkHandlesTypes
 WARNING: Unable to load class      [org.springframework.instrument.classloading.jboss.JBossModulesAdapter] to check against   the @HandlesTypes annotation of one or more ServletContentInitializers.
java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2823)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1160)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1655)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533)
at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:1988)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1951)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1840)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1808)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1794)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1214)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:828)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:302)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5148)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1525)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1515)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
   Oct 16, 2012 2:31:44 PM org.apache.catalina.startup.ContextConfig checkHandlesTypes

共有1个答案

东郭骁
2023-03-14

警告:无法加载类[org . spring framework . instrument . class loading . JBoss . JBoss mcadapter]来检查一个或多个ServletContentInitializers的@HandlesTypes批注。Java . lang . incompatilleclasschangeerror:实现类

完美地总结了Apache Tomcat服务器不是JBoss服务器。

其次,这似乎是Spring框架内部的一个合理问题,所以是时候看看在Tomcat而不是JBoss中加载Spring需要哪些设置了

 类似资料:
  • 从上到下,我有security-role-assignment,它将ldap组中的用户映射为registered_user。我认为标记会话描述符是自我解释的。然后是我的应用程序上下文根上下文-根。然后是一些用于将servlet注册到Weblogic的servlet定义(这也是在web.xml中定义的,我认为这将不需要更多的处理)。 那么在我的应用程序中迁移这个weblogic.xml文件的最佳方法

  • 我刚刚从eclipse转移到IntelliJ。我有一个Spring启动项目,在eclipse中运行完美。但是当我试图在IntelliJ上运行它时,我得到了“进程完成并退出代码1”,我已经尝试了所有接下来的解决方案: https://stackoverflow.com/search?q=eclipseintellijSpring靴 但什么都不管用。有什么建议吗?Spring启动配置

  • 问题内容: 我们的Oracle数据库遇到了严重的性能问题,我们想尝试将其迁移到基于MySQL的数据库(直接使用MySQL,或者最好是Infobright)。 问题是,在我们实际上不知道新数据库的所有功能是否符合我们的需求之前,我们需要让旧系统和新系统至少重叠数周(如果不是几个月)。 因此,这是我们的情况: Oracle数据库由多个表组成,每百万行。白天,实际上有成千上万的语句,我们无法停止迁移。

  • 问题内容: 在我的应用程序中,我从UIWebView迁移到WKWebView,如何为WKWebView重写这些功能? 和 问题答案: UIWebView => WKWebView等效 关于您可以写: 对于:

  • 考虑: 为什么,我怎么才能让它起作用? 我的CPU是i5-10210u(支持AVX-256)。在X64版本/调试中运行。