2016-03-29 13 views
0

EJB 3.1とOracle 12.1 DBのJNDIコンフィグレーション終了に問題があります。 私のコード:EJBコンフィグレーションのJava JNDI

private static NewSessionBeanRemote lookupRemoteSessionBean() throws NamingException { 

    final Hashtable jndiProperties = new Hashtable(); 
    jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming"); 

    final Context context = new InitialContext(jndiProperties); 
    final String appName = ""; 
    final String moduleName = "EjbComponent"; 
    final String distinctName = ""; 
    final String beanName = NewSessionBean.class.getSimpleName(); 
    final String viewClassName = NewSessionBeanRemote.class.getName(); 
    System.out.println("ejb:" + appName + "" + moduleName + "" + distinctName + "/" + beanName + "!" + viewClassName); 
    return (NewSessionBeanRemote) context.lookup("ejb:" + appName + "" + moduleName + "" + distinctName + "/" + beanName + "!" + viewClassName); 
} 

ERROR iはJNDIルックアップしようとすると:以外

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial 
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662) 
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313) 
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:350) 
at javax.naming.InitialContext.lookup(InitialContext.java:417) 
at com.studio.java.client.EjbTester.lookupRemoteSessionBean(EjbTester.java:73) 
at com.studio.java.client.EjbTester.invokeStatelessBean(EjbTester.java:51) 
at com.studio.java.client.EjbTester.main(EjbTester.java:41) 
+1

[NoInitialContextExceptionエラー]の複製があります(http://stackoverflow.com/questions/1525385/noinitialcontextexception-error) – SkyWalker

+0

どのアプリケーションサーバーを使用していますか? – aribeiro

答えて

1

をごContext.URL_PKG_PREFIXESあなたはまた、次のプロパティを設定する必要があります:あなたが持っている場合、また

jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); 
jndiProperties.put(Context.PROVIDER_URL, "http-remoting://127.0.0.1:8080"); 

をどのタイプの認証でも、Context.SECURITY_PRINCIPALContext.SECURITY_CREDENTIALSの間で設定する必要があります。

jndiProperties.put(Context.SECURITY_PRINCIPAL, "username"); 
jndiProperties.put(Context.SECURITY_CREDENTIALS, "password"); 
+0

多くのありがとうaribeiro! EJBCLIENT000025:呼び出しコンテキストの[appName :, moduleName:EjbComponent、distinctName:]の組み合わせで処理できるEJBレシーバがありません。[email protected] – reve

+0

@reve、このプロパティもありません: 'jndiProperties.put(" jboss.naming.client.ejb.context "、true);'。詳細は[こちら](https://docs.jboss.org/author/display/WFLY9/Remote+JNDI+Reference+Update+Draft)をご覧ください。 – aribeiro

関連する問題