我很困惑为什么在将我的耳朵部署到独立的jboss AS 6 localhost时出现以下错误:
“java.lang.RuntimeException:指定的引用(ForecastUtilityLocal')由多个EJB匹配” - 请参阅下面的详细信息......
部署错误: 由于以下原因,部署“vfs:/// C:/jboss/jboss-6.0.0.Final/server/default/deploy/ear-1.0.0.ear”出错:java.lang。 RuntimeException:指定的引用[EJB Reference:beanI erface'com.ls.forecast.ejb.util.ForecastUtilityLocal',beanName'null',mappedName'null',lookupName'null',拥有单位'ComponentDeploymentContext@23001552{org.jboss.metadata.ejb.jboss.JBossEnte riseBeanMetaData.ExpectedReturnEngineServiceImpl}']由多个EJB匹配:[org.jboss.metadata.ejb.jboss.JBossSessionBean31MetaData@63db1386{ForecastCacheManager},org.jboss.metadata.ejb。 oss.JBossSessionBean31MetaData@ee01f6d1{ForecastUtility}]。指定beanName explciitly或确保beanInterface是唯一的。
at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:1228) [:2.2.0.GA]
at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:905) [:2.2.0.GA]
at org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.checkComplete(MainDeployerPlugin.java:87) [:6.0.0.Final]
at org.jboss.profileservice.deployment.ProfileDeployerPluginRegistry.checkAllComplete(ProfileDeployerPluginRegistry.java:107) [:0.2.2]
at org.jboss.system.server.profileservice.bootstrap.BasicProfileServiceBootstrap.start(BasicProfileServiceBootstrap.java:135) [:6.0.0.Final]
at org.jboss.system.server.profileservice.bootstrap.BasicProfileServiceBootstrap.start(BasicProfileServiceBootstrap.java:56) [:6.0.0.Final]
at org.jboss.bootstrap.impl.base.server.AbstractServer.startBootstraps(AbstractServer.java:827) [jboss-bootstrap-impl-base.jar:2.1.0-alpha-5]
at org.jboss.bootstrap.impl.base.server.AbstractServer$StartServerTask.run(AbstractServer.java:417) [jboss-bootstrap-impl-base.jar:2.1.0-alpha-5]
at java.lang.Thread.run(Thread.java:619) [:1.6.0_20]
这个EJB用@Singleton注释,那么如何有多个实例呢?
@Singleton
@Local(ForecastUtilityLocal.class)
public class ForecastUtility implements ForecastUtilityLocal {
private static final Logger logger = LoggerFactory
.getLogger(ForecastUtility.class);
@EJB
private CacheHelperLocal cacheHelper;
....
}
例如,它在不同的EJB中引用,例如:
@Singleton
@Startup
@Local(CacheHelperLocal.class)
public class CacheHelper implements CacheHelperLocal {
@EJB
private ForecastModelUtilityLocal forecastModelUtility;
@EJB
private ConnectionManagerLocal connectionManager;
@EJB
private ForecastCacheManagerLocal forecastCacheManager;
@EJB
private ForecastUtilityLocal forecastUtility;
...
}
答案 0 :(得分:1)
检查您是否意外地将@Local(ForecastUtilityLocal.class)
放在另一个EJB上。