首页 文章

尝试从Class访问类Class $ 1

提问于
浏览
-1

最近,当我尝试启动 spring 容器时,我遇到了一个问题,错误堆栈如下:

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)的sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)中的java.lang.ExceptionInInitializerError,位于org上的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) .junit.runners.model.FrameworkMethod $ 1.runReflectiveCall在org.junit.runners.model.FrameworkMethod(FrameworkMethod.java:47)在org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) . 在org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:)的org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)中调用爆炸(FrameworkMethod.java:44): 61)在org.springframework.test.context的org.jun.work.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)org.junit.runners.ParentRunner.run(ParentRunner.java:309)org.springframework.test.context .junit4.SpringJUnit4ClassRunner.run (SpringJUnit4ClassRunner.java:174)位于com.intellij.rt.execution的com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)的org.junit.runner.JUnitCore.run(JUnitCore.java:160) . junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)位于sun.reflect的sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)的com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68) . NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)在com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)引起的:org.springframework.beans.factory.BeanCreationException:错误名称创建 beans “类路径资源[tair.xml]中定义的tair_perf':bean的实例化失败;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例bean类[com.taobao.tair.impl.mc.MultiClusterTairManager]:构造抛出异常;嵌套异常是java.lang.IllegalAccessError:尝试从org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory上的com.taobao.tair.impl.mc.MultiClusterTairManager类访问类com.taobao.tair.impl.mc.MultiClusterTairManager $ 1 .instantiateBean(AbstractAutowireCapableBeanFactory.java:1037)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:983)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:487) )在org.springframework.beans的org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:296)的org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) org.springframework.bea上的.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) ns.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)位于org.springframework.beans.factory.support.DefaultListableBeanFactory的org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) . 位于org.springframework的org.springframework.context上的org.springframework.context上的org.springframework.context上的org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)中的preInstantiateSingletons(DefaultListableBeanFactory.java:628) .context.support.ClassPathXmlApplicationContext . (ClassPathXmlApplicationContext.java:139)位于com.taobao.testcase.http . 百川.BaiChuanDo.TairRank . (TairRank . java:22)... 21更多引起:org.springframework.beans.BeanInstantiationException:无法实例化bean类[com.taobao.tair.impl.mc.MultiC lusterTairManager]:构造函数抛出异常;嵌套的例外是java.lang.IllegalAccessError:试图访问类com.taobao.tair.impl.mc.MultiClusterTairManager从类com.taobao.tair.impl.mc.MultiClusterTairManager $ 1日org.springframework.beans.BeanUtils.instantiateClass(BeanUtils的.java:163)atorg.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1030)... 34更多引起:java .lang.IllegalAccessError:尝试从com.taobao.tair.impl.mc.MultiClusterTairManager上的com.taobao.tair.impl.mc.MultiClusterTairManager类访问类com.taobao.tair.impl.mc.MultiClusterTairManager $ 1.(MultiClusterTairManager . java:47)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang .reflect.Constructor.newInstance(Constructor.java:526)org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148)... 36更多

xml文件是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="tair_perf" class="xxxxx"
          init-method="init">
        <property name="configID">
            <value>xxxx</value>
    </bean>
</beans>

在我的项目中似乎存在依赖冲突,但我找不到它 . 这是我自己的代码:

public class A {
    public static ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("tair.xml");//this where the problem happens.}

1 回答

  • 0

    如果您想要全局访问, constructorsmethods 应为 public .
    我确定您对此类 MultiClusterTairManager 的可见性有问题,因为您遇到此错误: java.lang.IllegalAccessError

相关问题