首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >javax.naming.NoInitialContextException 2

javax.naming.NoInitialContextException 2
EN

Stack Overflow用户
提问于 2014-11-28 10:20:10
回答 1查看 1.8K关注 0票数 1

我创建了一个EJB程序,它有两个接口,一个持久化类和一个无状态类,实现了这两个接口(远程接口和本地接口)

之后,我创建了一个带有1个类的Java,并将jboss-client.jar添加到java客户端应用程序和jboss-ejb-client.properties文件的类路径中。但是,当我运行java客户机时,它会生成一个错误。

我需要你帮我修好它。谢谢。

ClientEJB.java

代码语言:javascript
运行
复制
    package main;
    import java.util.Properties;

    import javax.naming.*;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;

    import metier.ICatalogueRemote;
    import metier.Produit;


    public class ClientEJB {
        public static void main(String[] args) {
            try{
            Properties p = new Properties();
            p.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
            Context ctx = new InitialContext(p);
            ICatalogueRemote stub = (ICatalogueRemote) ctx.lookup("ejb:/CatalogueEJB/CAT!metier.ICatalogueRemote");

            stub.addProduit(new Produit("HP",8000));
            stub.addProduit(new Produit("Clé usb ZTE", 5000));
            stub.addProduit(new Produit("HP ProBook 4700", 10000));

            }catch(NamingException ex){
                ex.printStackTrace();
            }
        }
    }

代码语言:javascript
运行
复制
# jboss-ejb-client.properties
#
endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
 remote.connection.default.host=127.0.0.1
remote.connection.default.port = 1234  
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
#remote.connection.default.username=root
#remote.connection.default.password=

运行应用程序时生成错误消息

代码语言:javascript
运行
复制
   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(Unknown Source)
    at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.lookup(Unknown Source)
    at main.ClientEJB.main(ClientEJB.java:18)
EN

回答 1

Stack Overflow用户

发布于 2014-12-03 09:47:10

您还需要一个jndi.properties文件,包括下面的代码

代码语言:javascript
运行
复制
java.naming.factory.url.pkgs=org.jboss.ejb.client.naming
java.naming.provider.url=remote://cie-pftestvm2:4447
java.naming.security.principal=jmstest
java.naming.security.credentials=admin@123
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27186491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档