Java 无法在三层体系结构中实例化类:org.jboss.naming.remote.client.InitialContextFactory

Java 无法在三层体系结构中实例化类:org.jboss.naming.remote.client.InitialContextFactory,java,.net,jboss7.x,ikvm,Java,.net,Jboss7.x,Ikvm,我正在尝试用三层体系结构方法连接jboss 7.1.1 final,将连接逻辑保留在业务层中,并从表示层访问该业务层。但它抛出了以下异常 Cannot instantiate class: org.jboss.naming.remote.client.InitialContextFactory. 如果我将jboss连接逻辑保持在同一个表示层中,它就可以正常工作 下面是我在业务逻辑中的代码 public static void Connect() { try

我正在尝试用三层体系结构方法连接jboss 7.1.1 final,将连接逻辑保留在业务层中,并从表示层访问该业务层。但它抛出了以下异常

Cannot instantiate class: org.jboss.naming.remote.client.InitialContextFactory.
如果我将jboss连接逻辑保持在同一个表示层中,它就可以正常工作

下面是我在业务逻辑中的代码

public static void Connect()
    {
        try
        {
            javax.naming.Context context = null;
            ConnectionFactory connectionFactory;
            Connection connection;
            Session session;
            String topicName = "jms/topic/TestedTopic";
            Destination dest = null;
            MessageConsumer consumer = null;
            TextListener listener = null;
            java.util.Properties jndiProps = new java.util.Properties();
            jndiProps.put(Context.__Fields.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
            jndiProps.put(Context.__Fields.PROVIDER_URL, "remote://10.1.7.149:4447");
            jndiProps.put(Context.__Fields.SECURITY_PRINCIPAL, "admin");
            jndiProps.put(Context.__Fields.SECURITY_CREDENTIALS, "admin123");
            jndiProps.put("jboss.naming.client.ejb.context", true);


            context = new InitialContext(jndiProps);


            connectionFactory = (ConnectionFactory)context.lookup("jms/RemoteConnectionFactory");
            connection = connectionFactory.createConnection();
            dest = (Destination)context.lookup(topicName);
            session = connection.createSession(false, Session.__Fields.AUTO_ACKNOWLEDGE);
            consumer = session.createConsumer(dest);

            listener = new TextListener();
            consumer.setMessageListener(listener);
            connection.start();
        }
        catch (Exception)
        {

            //throw;
        }
    }

这是一个例外。有关解决方案,请参阅。

向Visual Studio添加引用不会在编译的输出中添加引用。仅当您使用一个类时 在代码中,而不是通过反射添加引用

有3种选择: 最好是使用完全限定的.NET类名。这还包括dll名称

或者像在中一样使用BootClassPathAssemby


或者使用dll中的一个类文件并使用AppDomainAssemblyClassLoader。详细信息在

我已经检查了是否缺少任何东西,但没有问题,因为它在单个程序集中运行,但问题是当我尝试将整个逻辑组合到一个程序集中,并尝试将此打包的程序集添加到另一个程序集中时。