1

私は@Localインターフェースを持っています

@Local
public interface IRepo
{  

と2つの実現、ただし1つのBeanの実現 のみ

@Stateless(name = "RepoBean")
public class RepoBean implements IRepo
{  

2番目

public class SimpleRepo implements ILogRepositoryIRepo
{  

を使用してWebサービスに注入します

   @EJB(name = "RepoBean")
   private IRepo repository;  

jbossそして、それは上と上でうまく機能しWebLogicます。しかし、GlassFish 3.1.1(展開中に)エラーが発生します

  Cannot resolve reference Local ejb-ref name=RepoBean,Local 3.x interface =com.company.IRepo,ejb-link=null,lookup=,mappedName=,jndi-name=,refType=Session because there are 2 ejbs in the application with interface com.company.IRepo.  

しかし、私にはejbの実現が1つしかありません。
何か案は?デプロイメント記述子などを使用できる可能性があります。
EJB 3.0, Java EE 5

4

2 に答える 2

1

私はあなたが何をしようとしているのか本当に理解していませんでしたが、同じビジネスインターフェースを実装する2つのBeanがある場合は、次のように「beanName」属性を使用する必要があります。

@EJB(beanName = "RepoBean")
private IRepo repository;

- アップデート

これを見てください:java.net/node/702013。この問題にはバグの問題があります:java.net/jira/browse/GLASSFISH-11684

このように見えるのは、EJB-in-WARパッケージでのみ発生します。ejbjarでは発生しません。

于 2012-09-28T14:28:50.460 に答える
0

そうですね、GlassfishはJBossやWebLogicよりも適切です。Business-Bean-Classesはすべて独自のEJB-Local-Interfaceを持つ必要があります。

WLまたはJBossがエラーではなく警告を表示すると思います。

于 2012-09-28T10:21:54.497 に答える