0

我有两个类 ClientLogic1 和 WelcomeBean1 如下

   public class ClientLogic1 {

   public static void main(String[] args)
   {
       Resource res = new ClassPathResource("spconfig.xml");
       BeanFactory factory = new XmlBeanFactory(res); 
       Object o = factory.getBean("id1");
       WelcomeBean1 wb = (WelcomeBean1)o; 
       wb.show();

   }

   }

二等

  public class WelcomeBean1 {

      private Map data;  
      public void setData(Map data) {
           this.data = data;
       }

      public void show()
      {
          Set s=data.entrySet();
          Iterator it = s.iterator();
          while(it.hasNext())
          {
              Map.Entry me = (Map.Entry)it.next();
              System.out.println(me.getKey()+ " - "+me.getValue());
          }
       }

    }

我有一个 xml 文件作为

 <beans>
  <bean id="id1" class="WelcomeBean1">
   <property name="data">
    <map>
     <entry key="k1">
       <vlaue>1323</value>
     </entry>
     <entry key="k2">
       <value>feed</value>
     </entry>
    </map>
   </property>
  </bean>
 </bean>

我给出了正确的路径。只是当我运行这个程序时,我得到了以下错误

Exception in thread "main" java.lang.ClassCastException: WelcomeBean cannot be  
   cast to mapexmpl.WelcomeBean1 at mapexmpl.ClientLogic1.main(ClientLogic1.java:15)

我不确定我要去哪里错了。有人可以帮我吗?

4

2 回答 2

0
  1. 确保 spring 配置文件中没有重复的 bean id。例如,您可能有id 为id1的 bean WelcomeBean

  2. 更改为完整的包名<bean id="id1" class="mapexmpl.WelcomeBean1">

于 2013-03-19T05:32:38.517 回答
0

实际上它是说 WelcomeBean不能......但是您的代码显示为WelcomeBean1。

您在某些地方使用了 WelcomeBean。请检查一次。

我想在你使用 WelComeBean 之前。然后将其更改为 WelComeBean1。请用干净的方式构建 agian。

于 2013-03-19T05:29:44.797 回答