耳にインターフェースのないejbをデプロイしています(MyEar.ear)
@Stateless
@LocalBean
public class MyService{
// stuff
}
耳はjboss-6.0.0.Finalにデプロイされます
サーバーのjmxコンソールからJNDI名を確認しました。
MyEar / MyService / no-interface
同じサーバー内の戦争(耳の外)で別のejbからこのejbを参照しようとしています:
@EJB(mappedName = "MyEar/MyService/no-interface")
private MyService myService;
Eclipseの戦争プロジェクトからearプロジェクトを参照していますが、コンパイルは成功しています。
戦争を展開すると、ClassNotFoundException例外が発生し続けます。
java.lang.ClassNotFoundException:eg.com.test.MyService
戦争中のejbがもう一方の耳からejbを見ないのはなぜですか?
編集:私は次のように更新しました
リモートインターフェース
@Remote
public interface MyServiceRemote{
// stuff
}
ejb
@Stateless
public class MyService implements MyServiceRemote{
// stuff
}
別のアプリケーションでのejbリファレンス
@EJB(mappedName = "MyEar/MyService/remote")
private MyServiceRemote myService;
サーバーで新しいJNDI名を確認しました:MyEar / MyService / remote
しかし、私はまだ同じ例外を受け取っています、今回はインターフェースが見つかりません:
java.lang.ClassNotFoundException:eg.com.test.MyServiceRemote
更新:リモートインターフェイスをwarにパッケージ化する必要がありましたが、現在は正しく機能しています。