Spring bean实例化异常收集

发布于 2024-10-22 19:44:50 字数 593 浏览 6 评论 0原文

当 Spring 尝试实例化实现 AbstractSet 的 bean 时,它会抛出以下异常。

无法创建集合类型 [org.jboss.netty.channel.group.DefaultChannelGroup] 的副本 - 按原样注入原始集合

<bean id="defaultChannelGroup" class="org.jboss.netty.channel.group.DefaultChannelGroup" scope="prototype"></bean>

<bean id="client" class="com.menacheri.Client">
   <property name="id" value="6"></property>
   <property name="gameRoomChannelGroup" ref="defaultChannelGroup"></property>
</bean>

对我做错了什么有什么想法吗?

Spring is throwing the following exception when it tries to instantiate a bean which implements AbstractSet<Channel>.

Cannot create copy of Collection type [org.jboss.netty.channel.group.DefaultChannelGroup] - injecting original Collection as-is

<bean id="defaultChannelGroup" class="org.jboss.netty.channel.group.DefaultChannelGroup" scope="prototype"></bean>

<bean id="client" class="com.menacheri.Client">
   <property name="id" value="6"></property>
   <property name="gameRoomChannelGroup" ref="defaultChannelGroup"></property>
</bean>

Any ideas on what I am doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

↙温凉少女 2024-10-29 19:44:50

Spring 3.0.5 似乎有更好的错误消息,我找不到你提供的错误消息。以下是可能的原因(来自 Spring 源的错误):

  • [] 类型的集合返回 null Iterator
  • 无法访问 [] 类型的集合 - 按原样注入原始集合
  • 无法创建集合类型 [] 的副本 - 按原样注入原始集合
  • 集合类型 [] 似乎是只读 - 按原样注入原始集合

尽管如此,请尝试包装集合您正在尝试注入一个新的、新鲜的,如下所示:

<bean id="wrappedSet" class="java.util.HashSet">
    <constructor-arg>
        <ref bean="defaultChannelGroup"/>
    </constructor-arg>
</bean>

...并注入 wrappedSet 。可能有帮助,只是一个猜测。

Spring 3.0.5 seems to have a bit better error messages, I can't find the one you've provided. Here are the possible reasons (errors from Spring sources):

  • Collection of type [] returned null Iterator
  • Cannot access Collection of type [] - injecting original Collection as-is
  • Cannot create copy of Collection type [] - injecting original Collection as-is
  • Collection type [] seems to be read-only - injecting original Collection as-is

Nevertheless, try wrapping the collection you are trying to inject in a new, fresh one, like this:

<bean id="wrappedSet" class="java.util.HashSet">
    <constructor-arg>
        <ref bean="defaultChannelGroup"/>
    </constructor-arg>
</bean>

...and inject wrappedSet instead. Might help, just a guess.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文