2016-09-30 4 views
2

Netbeans에서 예상대로 작동하는 Netbeans에서 간단한 엔터프라이즈 응용 프로그램을 만들었습니다.클래스를 인스턴스화 할 수 없습니다. com.sun.enterprise.naming.SerialInitContextFactory

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 EE 및 Java SE와 같은 모든 유형의 Java 응용 프로그램을 실행할 수 있습니까?

+0

glassfish의 appclient 명령은 이러한 종속성을 해결할 수 있습니다. – Thufir

답변

0

간단히 말하면 : 코드에는 리플렉션을 사용하여 모두로드되는 꽤 많은 클래스 이름 목록이 들어 있습니다. 놀라움 : 모두이 수업 경로에 있어야합니다.

대부분의 Netbeans 프로젝트 설정에는 필요한 JAR이 모두 나열되어 있습니다 (Java 설치와 함께 제공되는 JAR 집합에 속할 수 있음).

하지만 명령 줄에서 java를 호출하면 "핵심"Java JAR 만 포함하는 클래스 경로로 시작합니다.

즉, 코드 목록에 포함 된 클래스가 포함 된 JAR을 식별해야합니다. 명령 줄에서 java를 호출 할 때 "클래스 경로 설정"내에서 제공해야합니다.

+0

JRE에는 Java SE 및 Java EE 응용 프로그램을 실행하는 데 필요한 모든 것이 포함되어 있습니까? 감사. +1 클래스 경로 참조. – w0051977

0

아마 중복 How to setup JNDI for Glassfish 3.1.2 for a stand-alone client?

우리는 글래스 피시와하고, NetBean 자바 EE에 대한 몇 가지 libs와 공유한다고 가정 할 수 있습니다.

어쨌든 http://jarscan.com을 사용하면 netbean 디렉토리를 검색하여 필요한 클래스가 포함 된 jar를 찾을 수 있습니다. 그리고 당신에게 자바 커맨드 라인을 추가하십시오.

관련 문제