java - 无法实例化类 : com. sun.enterprise.naming.SerialInitContextFactory

标签 java jakarta-ee jndi

我在 Netbeans 中创建了一个简单的企业应用程序,它在 Netbeans 中按预期工作。企业应用程序客户端包含以下代码:

package clienttest2;

import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import test.TestEJBRemote;

/**
 *
 * @author 
 */
public class Main {
private TestEJBRemote testejb;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws NamingException {
        Properties props = new Properties();  
        props = new Properties();
        props.setProperty("java.naming.factory.initial",
            "com.sun.enterprise.naming.SerialInitContextFactory");
        props.setProperty("java.naming.factory.url.pkgs",
            "com.sun.enterprise.naming");
        props.setProperty("java.naming.factory.state",
            "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
        props.setProperty("org.omg.CORBA.ORBInitialHost", "computer");
        props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
        InitialContext ctx = new InitialContext(props);
        TestEJBRemote t = (TestEJBRemote) ctx.lookup("java:global/EJBTest/EJBTest-ejb/TestEJB");
        System.out.println(t.getName("Ian"));

        //Context ctx = null;
        //ctx=new InitialContext();
        //TestEJBRemote t = (TestEJBRemote) ctx.lookup("java:global/EJBTest/EJBTest-ejb/TestEJB");
        //System.out.println(t.getName("Ian"));
    }

}

我尝试了以下方法:

java -jar ClientTest.jar

我得到的错误是:无法实例化类:com.sun.enterprise.naming.SerialInitContextFactory

我有几个问题:

我的 PC 上安装了 JRE 1.8。这是否意味着我可以运行所有类型的 Java 应用程序,即 Java EE 和 Java SE?

最佳答案

简单地说:您的代码包含相当多的类名列表,这些类名将全部使用反射加载。惊喜:所有它们都需要在您的类路径中。

很可能,您的 Netbeans 项目设置列出了所有必需的 JAR(可能因为它们属于您的 Java 安装附带的 JAR 集)。

但是当您在命令行上调用 java 时,您或多或少会从一个仅包含“核心”java JAR 的类路径开始。

换句话说:您必须识别那些包含您的代码列表类的 JAR;然后在命令行上调用 java 时,您必须在“类路径设置”中提供它们。

关于java - 无法实例化类 : com. sun.enterprise.naming.SerialInitContextFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39787327/

相关文章:

java - 奇怪的问题 - Glassfish 3.1.1 Server 和 Eclipse Indigo

java - 以编程方式垂直对齐 TextView 文本(无 XML)

java - 嵌套异常是 java.lang.NoClassDefFoundError : MappingJacksonHttpMessageConverter after making changes in pom. xml

java - 如何从同一 GlassFish Server 上的另一个应用程序注入(inject) EJB?

java - 在托管 bean 之间传递参数

java - 如何告诉 Seam 注入(inject)本地 EJB 接口(interface)(SLSB)而不是远程 EJB 接口(interface)(SLSB)?

java - 我的字符串与我的正则表达式不匹配,即使它在 regex101 上是正确的

java - 当套接字被接受时,我怎样才能关闭这个对话框?

Java、LDAP、ADAM - 如何创建名称中包含正斜杠的容器

java - 仅当 JNDI 资源可用时才在 JBoss 上部署 WAR 文件