JBOSS 7 클라이언트 만들기 JNDI를 통해 EJB 호출

4390 단어 jboss
JBOSS 6, 7은 JBOSS5와 달리 JNDI를 통해 EJB를 찾는 방법을 사용합니다.
 
JBOSS 5
 
		Properties props = new Properties();
		props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");  //jndi factory 
		props.setProperty("java.naming.provider.url", "localhost:1099"); //jndi server url
		props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");	//jndi finding package

		InitialContext ctx = new InitialContext (props);
		DBBeanRemote db = (DBBeanRemote) ctx.lookup("DBBean/remote");

 
 

JBOSS 6,7


EJB invocations from a remote client using JNDI


공식 문서https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+client+using+JNDI
 
요약:
 
1. JNDI 찾기
 
 
			final Hashtable jndiProperties = new Hashtable();
			jndiProperties.put(Context.URL_PKG_PREFIXES,
					"org.jboss.ejb.client.naming");// JNDI API JNDI  。
			final Context context = new InitialContext(jndiProperties);
			//appName   moduleName 
			// .ear appName, moduleName(.jar,.war)
			final String appName = "";
			final String moduleName = "EJBDBTest";
			final String distinctName = "";
			// 
			final String beanName = DB.class.getSimpleName();
			System.out.println(beanName);
			// 
			final String viewClassName = DBRemote.class.getName();
			System.out.println(viewClassName);
			String jndi = "ejb:" + appName + "/" + moduleName + "/"
					+ distinctName + "/" + beanName + "!" + viewClassName;
			System.out.println(jndi);
			DBRemote db = (DBRemote) context.lookup(jndi);

 
 In AS7, for remote access to EJBs, you use the ejb: namespace with the following syntax:
For stateless beans:
ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>
For stateful beans:
ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>?stateful

 
2. JAR 파일 추가
jboss-clientjar를 프로젝트에 추가, JBOSS_HOME/bin/client/jboss-client-7.1.0.Final.jar 디렉터리 아래.
 
 
3. 클라이언트 조정 환경 만들기 (클라이언트가 어디로 가야 하는지, 서버의 EJB를 어떻게 조정해야 하는지 알려줌)
프로젝트 경로에서 jboss-ejb-client를 만듭니다.properties 
 
 
endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
 
remote.connections=default  //connection  
 
remote.connection.default.host=xx.xxx.xxx.xx //IP
remote.connection.default.port = xxxx //port
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false

//JBOSS  
remote.connection.default.username=appuser   
remote.connection.default.password=apppassword

아니면 이 파일의 이름을 따로 명명할 수 있습니다. 시스템 파라미터에 넣으면 됩니다. 아래와 같습니다.
       -Djboss.ejb.client.properties.file.path=/home/me/my-client/custom-jboss-ejb-client.properties
 
너는 또 다른 연결을 세울 수 있다
   remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
 
remote.connections=one, two
 
remote.connection.one.host=localhost
remote.connection.one.port=6999
remote.connection.one.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
 
remote.connection.two.host=localhost
remote.connection.two.port=7999
remote.connection.two.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
  
 

좋은 웹페이지 즐겨찾기