EJB 클라이언트가 JNDI를 통해 원격 EJB를 호출하는 방법에 대한 자세한 내용
EJB 클라이언트는 서버에 배포된 EJB 메서드를 호출하는 응용 프로그램입니다.운영 환경에 따라 EJB 클라이언트 프로그램은 다음과 같은 두 가지 유형으로 나눌 수 있습니다.
본고는 주로 EJB 클라이언트의 호출 형식으로 독립적으로 응용하는 것을 논의한다.두 번째 방식은 따로 기술이 있을 것이다.
프로그래밍에 따라 EJB 클라이언트를 두 가지 유형으로 나눌 수 있습니다.
JBoss/WildFly 서버의 전용 액세스 API로 원격 EJB를 호출하려면 JNDI API가 필요하지 않습니다. 본고는 토론하지 않습니다.
이것은 가장 일반적인 원격 EJB 액세스 방법입니다.먼저 JDNI를 통해 EJB의 에이전트를 찾고 에이전트를 통해 원격 EJB를 호출하는 방법입니다.
JNDI가 원격 EJB를 호출하는 구체적인 방법은 다음과 같습니다.
1. 어떤 방법을 사용하든지 JBoss AS 7/WildFly AS 8-10은 보안 검사를 하기 때문에 먼저 EJB 서버에 유효한 사용자/비밀번호를 설정해야 한다. 예를 들어add-user를 실행해야 한다.sh 스크립트 등, 여기 생략.
2. 그 밖에 어떤 방법을 사용하든지 EJB 클라이언트 프로그램의 실행 환경classpath에 jboss-ejb-client가 있어야 한다.properties 파일, jboss-ejb-client를properties 파일이classpath에 추가되어야만 클라이언트가 원격 EJB 방법을 성공적으로 호출할 수 있습니다.즉시 jboss-ejb-client.properties 파일의 내용은 비어 있어야 합니다.
JBoss AS 7에 배치된 EJB 방법을 호출할 때 jboss-ejb-client.properties 파일의 내용은 다음과 같습니다.
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=10.20.30.40
remote.connection.default.port = 4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connection.default.username=appuser
remote.connection.default.password=apppassword
WildFly AS 7에 배치된 EJB 방법을 호출할 때 jboss-ejb-client.properties 파일의 내용은 다음과 같습니다.
endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=10.20.30.40
remote.connection.default.port=8080
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connection.default.username=appuser
remote.connection.default.password=apppassword
3.%WildFly%/bin/jboss-client.jar 파일을 Eclipse 프로젝트에 복사하고classpath에 추가
4. JNDI 컨텍스트 매개변수 설정
JNDI 컨텍스트의 매개변수는 사용된 원격 JNDI 유형과 연관됩니다.구체적으로는 http-remoting 방식과 jb 방식 두 가지로 나눌 수 있다.
예를 들면 다음과 같습니다.
http-remoting 방식
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
props.put(Context.PROVIDER_URL, "http-remoting://localhost:8080");
props.put("jboss.naming.client.ejb.context", true);
String fullEJBName = "CustomView/ToolsCommonEJB//ToolsCommonBean!com.jdsu.netcomplete.common.framework.toolscommon.ToolsCommonRemote";
... 과 같다
ejb 방식
props.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
String fullEJBName = "ejb:CustomView/ToolsCommonEJB//ToolsCommonBean!com.jdsu.netcomplete.common.framework.toolscommon.ToolsCommonRemote";
이로써 EJB 클라이언트 개발을 완료하고 상세 코드는 다음과 같습니다.
public class ToolsCommonEjbTest {
private static IToolsCommon remote;
@Before
public void setUp() throws Exception
{
Properties props = new Properties();
props.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
Context ic = new InitialContext(props);
String fullEJBName = "ejb:CustomView/ToolsCommonEJB//ToolsCommonBean!com.jdsu.netcomplete.common.framework.toolscommon.ToolsCommonRemote";
remote = (IToolsCommon) ic.lookup( fullEJBName );
}
@Test
public void sendMessage() {
...
try {
remote.sendAlertMessage(userList, "Hi");
} catch( Exception e ) {
e.printStackTrace();
fail( "Message not Sent" );
}
}
...
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
jboss 설정 방법 간단명료한 강좌본고는 jboss 설정 방법을 서술하였다.다음과 같이 여러분에게 참고할 수 있도록 공유합니다. jboss-5.1.0.GA-jdk6.zip 구성: 1. JDK 설치 후 구성: 환경 변수에 JAVA_ 추가JDK의 설치 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.