Jsf 配置JNDI查找端口jboss+;EJB

Jsf 配置JNDI查找端口jboss+;EJB,jsf,jboss,ejb,jndi,Jsf,Jboss,Ejb,Jndi,在我的应用程序中,我使用JSF和EJB作为两个独立的项目。下面我描述了用于JNDI查找的代码 protected final Object lookup(Class className) throws NamingException { Properties properties = new Properties(); properties.put("java.naming.factory.initial","org.jnp.interfaces.NamingC

在我的应用程序中,我使用JSF和EJB作为两个独立的项目。下面我描述了用于JNDI查找的代码

protected final Object lookup(Class className) throws NamingException {

        Properties properties = new Properties();
        properties.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
        properties.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
        properties.put("java.naming.provider.url",ProjectConstants.PORT_NUMBER);
        initialContext = new InitialContext(properties);
        return initialContext.lookup(ProjectConstants.DEPLOYMENT_NAME+"/"+className.getSimpleName().substring(0, className.getSimpleName().lastIndexOf("Remote")) + "/remote-" + className.getName());
    }

jboss中是否需要对端口进行特殊配置,我用于查找?

默认情况下,JNDI端口为
1099
。如果需要另一个端口,请使用
-Djboss.service.binding.set=ports-01
启动jBoss。这将为每个端口增加100个。1099->1199等。

默认情况下,JNDI端口为
1099
。如果需要另一个端口,请使用
-Djboss.service.binding.set=ports-01
启动jBoss。这将为每个端口增加100个。1099->1199等。

默认端口是1099,上下文加载程序将尝试执行自己的发现

但是,您也可以为
java.naming.provider.url
指定一个端口,例如,这样也可以:

properties.put("java.naming.provider.url", "jnp://localhost:15102");
我还建议您不要使用硬编码字符串,而是依赖于
javax.naming.Context
中现有的常量,例如:

    final Properties    props   = new Properties();

    props.put(Context.SECURITY_PRINCIPAL, username);
    props.put(Context.SECURITY_CREDENTIALS, password);
    props.put(Context.INITIAL_CONTEXT_FACTORY, MY_JNDI_FACTORY);
    props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
    props.put(Context.SECURITY_PROTOCOL, MY_JNDI_PROTOCOL);
    props.put(Context.PROVIDER_URL, server);

默认端口是1099,上下文加载器将尝试执行自己的发现

但是,您也可以为
java.naming.provider.url
指定一个端口,例如,这样也可以:

properties.put("java.naming.provider.url", "jnp://localhost:15102");
我还建议您不要使用硬编码字符串,而是依赖于
javax.naming.Context
中现有的常量,例如:

    final Properties    props   = new Properties();

    props.put(Context.SECURITY_PRINCIPAL, username);
    props.put(Context.SECURITY_CREDENTIALS, password);
    props.put(Context.INITIAL_CONTEXT_FACTORY, MY_JNDI_FACTORY);
    props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
    props.put(Context.SECURITY_PROTOCOL, MY_JNDI_PROTOCOL);
    props.put(Context.PROVIDER_URL, server);