プロジェクトにEJBを実装しようとしていますが、JBoss AS 6(最終版)にデプロイするときに同じエラーが発生します。@EJB参照を解決できませんでした:
私は2つのクラスがあります。エラーメッセージは、私が注入しようとしている 'forecastReturnService' 豆に関してです
@Stateless
public class CacheManagementServiceImpl implements CacheManagementService {
@EJB
private ForecastReturnService forecastReturnService;
}
:
DEPLOYMENTS IN ERROR:
Deployment "vfs:///C:/jboss/jboss-6.0.0.Final/server/default/deploy/webui.war" is in error due to the following reason(s): java.lang.RuntimeException: Could not resolve @EJB reference: [EJB Referenc
e: beanInterface 'com.ls.forecast.jpa.ForecastReturnService', beanName 'null', mappedName 'null', lookupName 'null', owning unit '[email protected]{org.jboss.metadata.ejb.jboss.JBoss
EnterpriseBeanMetaData.CacheManagementServiceImpl}'] for environment entry: env/com.ls.forecast.webui.business.CacheManagementServiceImpl/forecastReturnService in unit [email protected]
526{org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData.CacheManagementServiceImpl}
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]
@Stateless
@Local(ForecastReturnService.class)
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class ForecastReturnServiceImpl implements ForecastReturnService {
private static final Logger logger = LoggerFactory
.getLogger(ForecastReturnServiceImpl.class);
@PersistenceContext
protected EntityManager em;
}
や他のEJBを
JBossコンソールで次のメッセージが表示されました。
13:34:27,681 WARN [MappedReferenceMetaDataResolverDeployer] Unresolved references exist in JBossMetaData:[#CacheManagementServiceImpl:AnnotatedEJBReferenceMetaData{name=com.ls.forecast.webui.business
.CacheManagementServiceImpl/forecastReturnService,ejb-ref-type=null,link=null,ignore-dependecy=false,mapped/jndi-name=null,resolved-jndi-name=null,beanInterface=interface com.ls.forecast.jpa.ForecastR
eturnService}, #EntityForecastReturnResultServiceImpl:AnnotatedEJBReferenceMetaData{name=com.ls.forecast.webui.business.EntityForecastReturnResultServiceImpl/entityForecastReturnProcessor,ejb-ref-type
ご協力いただければ幸いです。私は配管の中で何か...
をしないのですように私は、私は@EJB注釈に以下を追加した場合、エラーを取り除くように見えることを追加したいようだ:
@EJB(lookup="com.ls.forecast.jpa.ForecastReturnService/local")
private ForecastReturnService forecastReturnService;
ありません@EJBだけのチュートリアルや多くの例を見てきたので、なぜローカル・インターフェースを指定しなければならないのでしょうか?なぜローカルインターフェイスを指定する必要がありますか?
FYI、私は.warでテストし、問題は発生しませんでした。たぶん最小限のコードで完全な新しい戦争を作り、それでも問題を抱えているかどうかを確認する必要があります。そうでない場合は、ゆっくりと元のコードに戻って、再び中断してください。 –
私の戦争は、複数のMavenサブモジュール(jar)で構成されていました。なぜなら、いくつかのEJBにバインドできず、他のものを見つけることができたからです(つまり、Webモジュールの直下にあるものが選ばれました)。 – user899757
"複数のMavenサブモジュール" - 恐ろしい音... –