最初のEJB 3.0プログラム

2625 ワード

ステップの作成
1.ビジネスインタフェースコード、Beanクラスを作成します.
2.コンパイル手順1で開発したコード.
3.配置記述子を指定します.
4.2、3、工程の生成物を梱包する.
5.導入およびテスト.
1.2.2例
ビジネス・インタフェース・コードは次のとおりです.

package com.lemon.session.stateless;

/**
 * HelloWorld 
 * @author Tess
 *
 */
public interface HelloWorld {
	public String sayHello(String name);
}


どうですか.簡単ではありませんか.
私たちのBeanクラスはPOJOで、
上で定義したビジネスインタフェースのみを実現します.

package com.lemon.session.stateless;

import javax.ejb.Remote;
import javax.ejb.Stateless;

import org.jboss.annotation.ejb.RemoteBinding;

/**
 *  bean, : +Bean
 * @author Tess
 *
 */
@Stateless
// 
@Remote(HelloWorld.class)  
@RemoteBinding(jndiBinding="HelloWorldBean/Remote")
public class HelloWorldBean implements HelloWorld {

	@Override
	public String sayHello(String name) {
		System.out.println("called sayHello()method!");
		return name+" said:this is my first EJB program";
	}

}

HelloWorldBean.JAvaでは、EJBの注釈をいくつか使用しています.
@Stateless:この注記Beanクラスをステータスレスセッションとして宣言するBean@Remote:EJBコンポーネントのリモートクライアントビューを提供する@RemoteBilling:コンテナ環境でJNDI名を定義する
1.2.3配置とテスト
上記のコードをhelloworldとする.jar、%jboss_に配置home%serverdefaultdeployディレクトリの下にあります.
jbossを起動し、起動が完了すると、テストできます.テストコードは以下の通りです.

package com.lemon.test;

import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;

import org.junit.Before;
import org.junit.Test;

import com.lemon.session.stateless.HelloWorld;
import com.lemon.session.stateless.HelloWorldBean;


public class TestMain {
        
	private Properties props = new Properties();
	@Before
	public void init(){
                // JNDI 
		props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
                // URL
		props.setProperty("java.naming.provider.url", "localhost:1099");		
	}
	@Test
	public void test(){
		Context ctx;
		try {
			ctx = new InitialContext(props);
			HelloWorld helloBean=(HelloWorld) ctx.lookup("HelloWorldBean/Remote");
			System.out.println(helloBean.sayHello("yanan"));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}