상세 컨텐츠

본문 제목

EJB 를 한번 해보자

관리X 과거글

by 까먹기전에 2015. 7. 1. 15:29

본문

반응형

EJB JAR 로 만들 프로젝트


package com.j2eearchitect.helloworld;


import javax.ejb.Remote;


@Remote // proxy 생성

public interface HelloWorld {

String sayHello(String name);

}

===================================
package com.j2eearchitect.helloworld;

import java.io.Serializable;

import javax.ejb.Stateless;
import weblogic.javaee.JNDIName;

@Stateless //업무로직은 여기에
@JNDIName("helloWorld")
public class HelloWorldBean implements HelloWorld {

public String sayHello(String name) {
return "Hello " + name;
}
}

에러가 날수도 있다.
클래스 패스에서 웹로직.JAR를 추가하고 JRE , JDK를 확인하자


===================EJB JAR를 이식받을 프로젝트=================

package com.j2eearchitect.ejb3.util;


import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.sql.DataSource;

import java.sql.Connection;

import java.util.Properties;



public class JNDIHelper {


public static Context getJNDIContext() {

try {

java.util.Properties p = new java.util.Properties();

  p.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");

  p.put(Context.PROVIDER_URL, "t3://localhost:7001");

return new InitialContext(p);

} catch (NamingException e) {

e.printStackTrace();

}

return null;

}


public static Context getJNDIContext(String user, String password) {

try {

Properties props = new Properties();

props.put(Context.SECURITY_PRINCIPAL, user);

props.put(Context.SECURITY_CREDENTIALS, password);

props.put(InitialContext.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");

props.put(InitialContext.PROVIDER_URL, "jnp://localhost:1099");

props.put(InitialContext.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");

return new InitialContext(props);

} catch (NamingException e) {

e.printStackTrace();

}

return null;

}


public static Context getJNDIContext(Properties props) {

try {

return new InitialContext(props);

} catch (NamingException e) {

e.printStackTrace();

}

return null;

}


}

==========================================
package com.j2eearchitect.helloworld;

import javax.naming.Context;
import javax.rmi.PortableRemoteObject;

import com.j2eearchitect.ejb3.util.JNDIHelper;

public class HelloWorldClient {
public static void main(String[] args) {
Context ctx = JNDIHelper.getJNDIContext();
try {
HelloWorld hello =  (HelloWorld) ctx.lookup("helloWorld");
System.out.println(hello.sayHello("EJB 3.0"));
} catch(Exception e) {
e.printStackTrace();
}
}
}


ejb 는 배포를 해서 서버 구동을 해야한다.








자세한 메소드 , 클래스 설명은 공부를 좀더 하고 달겠다


관련글 더보기