1. Структура директории проекта:
1
2
3
4
5
6
7
8
| C:\simple-ejb3> tree /A /F+---classes| \---foo\---src \---foo Client.java FooBean.java FooRemote.java |
2. В пакете foo в папке src/foo создадим 3 java-файла:
1
2
3
4
5
6
7
| package foo;import javax.ejb.*;@Remotepublic interface FooRemote {public String echo(String s);} |
1
2
3
4
5
6
7
8
9
10
| package foo;import javax.ejb.*;@Statelesspublic class FooBean implements FooRemote {public String echo(String s) { return s;}} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| package foo;import javax.ejb.*;import javax.naming.*;public class Client {public static void main(String[] args) throws Exception { Context ic = new InitialContext(); Object obj = ic.lookup(FooRemote.class.getName()); System.out.println("lookup returned " + obj); FooRemote foo = (FooRemote) obj; String input = (args.length > 0) ? args[0] : "No application arg specified."; String s = foo.echo(input); System.out.println("foo.echo returned " + s);}} |
3. Компилируем java-файлы. Желательно для удобства установить переменную окружения
JAVAEE_HOME, но это не обязательно.
1
2
C:\simple-ejb3\classes> set JAVAEE_HOME=C:\Program Files\glassfish-3.1.2.2\glassfishC:\simple-ejb3\classes> javac -d . -classpath %JAVAEE_HOME%\lib\javaee.jar;. ..\src\foo\*.java%JAVA_HOME%\bin\javac -d . -classpath "C:\Program Files\glassfish-3.1.2.2\glassfish\lib\javaee.jar;." ..\src\foo\*.java
4. Стартуем сервер приложений:
1
C:\simple-ejb3\classes> "%JAVAEE_HOME%\bin\asadmin.bat" start-domain5. Пакуем и автодеплоим ejb-jar. Мы можем совместить два шага в одном используя %JAVAEE_HOME%\domains\domain1\autodeploy в качестве директории назначения (destdir)
1
| C:\simple-ejb3\classes> %JAVA_HOME%\bin\jar cvf "%JAVAEE_HOME%\domains\domain1\autodeploy\foo-ejb.jar" foo\FooBean.class foo\FooRemote.class |
Убедиться в удачном деплоинге можно зайдя в директорию %JAVAEE_HOME%\domains\domain1\autodeploy, там должы появиться пара файлов foo-ejb.jar и foo-ejb.jar_deployed.
6. Запускаем standalone клиент и смотрим на вывод:
1
2
3
4
| C:\simple-ejb3\classes> java -cp "%JAVAEE_HOME%\lib\javaee.jar;%JAVAEE_HOME%\lib\appserv-rt.jar;." foo.Clientlookup returned foo._FooRemote_Wrapper@e9738564foo.echo returned No application arg specified. |
7. Если тестовый проект на сервере нам не нужен, сделаем его андеплой:
1
| del %JAVAEE_HOME%\domains\domain1\autodeploy\*.jar |