当前位置: 首页 > 面试题库 >

无法使用JBoss服务器实例化InitialContext

平光明
2023-03-14
问题内容

我正在尝试创建一个,InitialContext所以我可以向JNDI请求一些企业Java
Bean。JBoss运行正常,但是当我运行Java代码时,出现异常。

我正在运行JBoss 7.1

这是我的代码:

public class Test {

    public static void main(String[] args){
        InitialContext ctx=getInitialContext();
        Object ref=null;
        try {
            ref = ctx.lookup("ParamEJB/remote");
        } catch (NamingException e) {
            System.out.println("Lookup Failed");
            e.printStackTrace();
        }
        Param stub=(Param)PortableRemoteObject.narrow(ref, Param.class);
        int times=stub.getTimes();
        for(int i=0;i<times;i++)
            System.out.println(stub.getMessage());
    }

    public static InitialContext getInitialContext(){
        Hashtable<String,String> h=new Hashtable<String,String>();
        h.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
        h.put("java.naming.provider.url","localhost");
        try {
            return new InitialContext(h);
        } catch (NamingException e) {
            System.out.println("Cannot generate InitialContext");
            e.printStackTrace();
        }
        return null;
    }
    }

在启动JBoss服务器之后,我尝试运行Java代码,并得到以下异常:

javax.naming.NoInitialContextException: Cannot instantiate class:     org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException:     org.jnp.interfaces.NamingContextFactory]
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.init(Unknown Source)
at javax.naming.InitialContext.<init>(Unknown Source)
at client.Test.getInitialContext(Test.java:32)
at client.Test.main(Test.java:13)
Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)

可能是什么问题?


问题答案:

InitialContext属性不适用于您使用的JBoss版本。使用JBoss
7,当您从远程客户端调用ejb时,情况发生了很大变化。此链接可以帮助您正确地实例化InitialContex对象并确定JNDI条目名称。还可以告诉您需要添加到客户端类路径的必要依赖项。



 类似资料:
  • 我可以在我自己的电脑上使用这个程序,但是我不能在服务器上使用。 服务器使用最高权限管理员打开程序。 具有的服务器WCF HTTP激活功能。NET4。5号门开着。 服务器endpoint地址使用"http://localhost",如下所示 endpoint地址="http://localhost"绑定="basicHttpBind"bindingConfiguration="NewBinding0

  • 启动jboss服务器时,出现错误,无法启动服务jboss.deployment.unit.“jbpm console.war”。但是当我使用start.demo运行jbpm6演示时,它工作得很好。

  • 问题内容: 当我想从其他服务器访问远程wildfly服务器上的EJB时,出现以下错误。 如果我在服务器内访问EJB,则不会收到任何身份验证错误。我使用以下方法访问服务器; 基本上,如果我在server1中调用它,就没有问题。如果我从server2调用此命令,则会收到错误消息。我假设它在server1中存在的server2中查找身份验证文件。 我不确定是否必须在EJB或wildfly上进行一些配置才

  • 我有一个自定义对象,它填充。为了响应对列表中的项以及列表本身的更改,我决定使用一个提取器。下面是我的的声明和实例化: 在我下面提供的链接中,这种方法是有效的。但是Netbeans告诉我“不能转换为”。我可以理解为什么会出现这种情况,但我不明白为什么它在下面的链接中有效而不适合我,以及如果这种方法不起作用,我应该如何创建提取器并将其链接到函数。 链接: JavaFX2.0选择框问题。如何在更新对象时

  • 我创建了一个包含定时器任务的bpmn进程。我想在完成计时器任务时执行一行代码。我为此编写了一个任务监听器,并将jar放入tomcat/lib文件夹,但它显示异常“无法实例化类MyTaskListener”。请给点建议。提前感谢

  • 我在跟随一位导游http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/对于GCM。 目前,我被困在接收通知的部分。有时,当我运行代码时,它会因以下错误而崩溃: 7.517:E/AndroidRuntime(8601):致命异常:mai