0

EJB (ローカル) をサーブレット フィルターに挿入したいのですが、EAR は Weblogic 11g にデプロイされています。

私の質問は:

@EJB アノテーションは Weblogic 11g で機能しますか? それとも無視されますか? または、以下のように検索して、web.xml および weblogic xml ファイル内の参照に言及する必要があります。

Hashtable env = new Hashtable();
env.put( Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory" );
Context ctx = new InitialContext( env );
ctx.lookup( "myejb" );

ありがとう

4

1 に答える 1

0

以下のようにサポートしたいと思います

詳細参照:管理対象 Bean と ejb を使用する JSF アプリケーション

リモートおよびローカル インターフェイス

    @Remote
    public interface IPersonEAORemote {
        public void show();
    }

    @Local
    public interface IPersonEAOLocal {
        public void show();
    }

EJB Bean

    @Stateless(name = "PersonEAO", mappedName = "PersonEAO")
    public class PersonEAOBean implements IPersonEAORemote, IPersonEAOLocal {
        /* if you use JPA
        @PersistenceContext(name = "EJB_DEMO")
        private EntityManager em;
        */

        public void show() {
            System.out.println("Good Luck!");
        }
    }

シンプルクライアント

    public class Client {
        private IPersonEAORemote personEAO;

        private void init() {
            try {
                final Context context = getInitialContext();
                personEAO = (IPersonEAORemote)context.lookup("PersonEAO#<your package name>.IPersonEAORemote");
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }

        private static Context getInitialContext() throws NamingException {
            Hashtable env = new Hashtable();
            // WebLogic Server 10.x connection details
            env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
            env.put(Context.PROVIDER_URL, "t3://127.0.0.1:7101");
            return new InitialContext(env);
        }


        public void show() {
            personEAO.show());
        }

        public static void main(String[] args) {
            Client client = new Client();
            client.init();
            client.show();
        }
    }

ManageBean : たとえば、JSF を使用している場合、バッキング Bean はここにあります。

    public class JSFBackingBean {
        @EJB
        IPersonEAORemote personEAO;

        public void show() {
            personEAO.show();
        }
    }

JBoss 5 の場合:

    Context.INITIAL_CONTEXT_FACTORY ---> org.jnp.interfaces.NamingContextFactory
    Context.PROVIDER_URL ---->http://localhost:1099
于 2012-09-25T10:26:21.740 に答える