'OpenEJB'에 해당되는 글 5건
- 2011.12.08 [정리] Build, deploy, and test EJB components in just a few seconds
- 2011.12.06 EJB Test with EJBContainer of OpenEJB
- 2011.12.06 OpenEJB - Apache TomEE
- 2011.12.06 OpenEJB - Hello world
- 2009.06.13 Developing an Application Client to access EJB - Geronimo Tutorial
- [정리] Build, deploy, and test EJB components in just a few seconds
- 日常茶飯事
- 2011. 12. 8. 01:00
- http://www.javaworld.com/javaworld/jw-06-2005/jw-0613-ejb.html
EJB 개발은 시간이 많이 걸리고 단위테스트도 쉽지 않다.
EJB 컨테이너에 배포해야만 실행시킬수 있는데 복잡하고 시간이 걸린다.
컨테이너에서 테스트를 돌리지 않고 테스트에서 컨테이너를 돌리자.
OpenEJB는 가볍고 EJB 명세를 잘 따른다.기능에 충실하다.
OpenEJB, EJB 컴포넌트, JUnit테스트가 같은 JVM에서 돌아간다.
개발시에서는 내장 OpenEJB를 사용해서 빠르고 쉽게 테스트하고 통합테스트는 실제 사용되는 EJB 컨테이너에서 테스트하자.
=> EJB 3.1에서 제공하는 EJBContainer를 이용하면 EJB 컴포넌트를 배포하지 않고도 테스트할 수 있다.
XStream을 이용하면 테스트시 반복되는 입력을 XML로 처리할 수 있다.
=> XStream은 유용할거 같은데 반복되는 데이터를 자동으로 처리하는 방법은 좋은 방법이 더 많으니깐...
EJB 개발은 시간이 많이 걸리고 단위테스트도 쉽지 않다.
EJB 컨테이너에 배포해야만 실행시킬수 있는데 복잡하고 시간이 걸린다.
컨테이너에서 테스트를 돌리지 않고 테스트에서 컨테이너를 돌리자.
OpenEJB는 가볍고 EJB 명세를 잘 따른다.
개발시에서는 내장 OpenEJB를 사용해서 빠르고 쉽게 테스트하고 통합테스트는 실제 사용되는 EJB 컨테이너에서 테스트하자.
=> EJB 3.1에서 제공하는 EJBContainer를 이용하면 EJB 컴포넌트를 배포하지 않고도 테스트할 수 있다.
XStream을 이용하면 테스트시 반복되는 입력을 XML로 처리할 수 있다.
=> XStream은 유용할거 같은데 반복되는 데이터를 자동으로 처리하는 방법은 좋은 방법이 더 많으니깐...
- EJB Test with EJBContainer of OpenEJB
- 日常茶飯事
- 2011. 12. 6. 07:20
- http://openejb.apache.org/examples-trunk/simple-stateless/README.html
- OpenEJB 4.0.0-beta-1 사용
모든 라이브러리를 포함시킨다. 1
EJB 3.1에서 제공하는 EJBContainer를 이용해서 테스트한다.
- EJBContainer를 BeforeClass에서 하는게 좋을듯. 속도차이가 10배 정도 차이가 난다.
- OpenEJB 4.0.0-beta-1 사용
모든 라이브러리를 포함시킨다. 1
package org.superbiz.stateless.basic; import javax.ejb.Stateless; @Stateless public class CalculatorBean { public int add(int a, int b) { return a + b; } ...
EJB 3.1에서 제공하는 EJBContainer를 이용해서 테스트한다.
package org.superbiz.stateless.basic; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import javax.ejb.embeddable.EJBContainer; import org.junit.Before; import org.junit.Test; public class CalculatorTest { private CalculatorBean calculator; /** * Bootstrap the Embedded EJB Container * * @throws Exception */ @Before public void setUp() throws Exception { EJBContainer ejbContainer = EJBContainer.createEJBContainer(); Object object = ejbContainer.getContext().lookup("java:global/PROJECT_NAME/CalculatorBean"); assertTrue(object instanceof CalculatorBean); calculator = (CalculatorBean) object; } /** * Test Add method */ @Test public void testAdd() { assertEquals(10, calculator.add(4, 6)); } ...
- EJBContainer를 BeforeClass에서 하는게 좋을듯. 속도차이가 10배 정도 차이가 난다.
- 의존 관계가 복잡하므로 이렇게 하는게 정신건강에 이롭다. [본문으로]
- OpenEJB - Apache TomEE
- 日常茶飯事
- 2011. 12. 6. 07:16
- 예전에 Tomcat에서 EJB를 구동시키려고 찾다가 OpenEJB를 알게 되었는데 Apache TomEE라는 이름으로 발전해 나가려고 하는거 같다. 1
- Apache TomEE Plus
Tomcat + OpenEJB인듯.
- Apache Tomcat Drop-in wars
예전의 OpenEJB war인듯.
- Apache OpenEJB Standalone Server
OpenEJB
- 이름 하나는 정말 잘 짓는다. [본문으로]
- OpenEJB - Hello world
- 日常茶飯事
- 2011. 12. 6. 06:42
- http://openejb.apache.org/hello-world.html
openejb-3.1.4_hello> set OPENEJB_HOME=D:/java/openejb/openejb-3.1.4
openejb-3.1.4_hello> set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_26
openejb-3.1.4_hello> set path=%path%;%openejb_home%/bin;%java_home%/bin
openejb-3.1.4_hello> set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_26
openejb-3.1.4_hello> set path=%path%;%openejb_home%/bin;%java_home%/bin
package org.acme; import javax.ejb.Remote; @Remote public interface Hello{ public String sayHello(); }
package org.acme; import javax.ejb.Stateless; @Stateless public class HelloBean implements Hello{ public String sayHello(){ return "Hello World!!!!"; } }
openejb-3.1.4_hello> javac -cp %OPENEJB_HOME%/lib/javaee-api-5.0-3.jar -d . *.java
openejb-3.1.4_hello> jar cvf hello.jar org
추가된 manifest
추가 중: org/(내부 = 0) (외부= 0)(0%가 저장되었습니다.)
추가 중: org/acme/(내부 = 0) (외부= 0)(0%가 저장되었습니다.)
추가 중: org/acme/Hello.class(내부 = 203) (외부= 168)(17%가 감소되었습니다.)
추가 중: org/acme/HelloBean.class(내부 = 383) (외부= 274)(28%가 감소되었습니다.)
openejb-3.1.4_hello> jar cvf hello.jar org
추가된 manifest
추가 중: org/(내부 = 0) (외부= 0)(0%가 저장되었습니다.)
추가 중: org/acme/(내부 = 0) (외부= 0)(0%가 저장되었습니다.)
추가 중: org/acme/Hello.class(내부 = 203) (외부= 168)(17%가 감소되었습니다.)
추가 중: org/acme/HelloBean.class(내부 = 383) (외부= 274)(28%가 감소되었습니다.)
package org.acme; import java.util.Properties; import javax.naming.InitialContext; import javax.naming.Context; import javax.rmi.PortableRemoteObject; public class HelloClient{ public static void main(String[] args) throws Exception{ Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY,"org.apache.openejb.client.RemoteInitialContextFactory"); props.put(Context.PROVIDER_URL,"ejbd://127.0.0.1:4201"); Context ctx = new InitialContext(props); Object ref = ctx.lookup("HelloBeanRemote"); Hello h = (Hello)PortableRemoteObject.narrow(ref,Hello.class); String result = h.sayHello(); System.out.println(result); } }
openejb-3.1.4_hello> javac -d . HelloClient.java
openejb-3.1.4_hello> start %OPENEJB_HOME%/bin/openejb start
Apache OpenEJB 3.1.4 build: 20101112-03:32
http://openejb.apache.org/
log4j:WARN No appenders could be found for logger (org.apache.openejb.resource.activemq.ActiveMQResourceAdapter).
log4j:WARN Please initialize the log4j system properly.
[init] OpenEJB Remote Server
** Starting Services **
NAME IP PORT
httpejbd 127.0.0.1 4204
admin thread 127.0.0.1 4200
ejbd 127.0.0.1 4201
ejbd 127.0.0.1 4203
hsql 127.0.0.1 9001
telnet 127.0.0.1 4202
-------
Ready!
Apache OpenEJB 3.1.4 build: 20101112-03:32
http://openejb.apache.org/
log4j:WARN No appenders could be found for logger (org.apache.openejb.resource.activemq.ActiveMQResourceAdapter).
log4j:WARN Please initialize the log4j system properly.
[init] OpenEJB Remote Server
** Starting Services **
NAME IP PORT
httpejbd 127.0.0.1 4204
admin thread 127.0.0.1 4200
ejbd 127.0.0.1 4201
ejbd 127.0.0.1 4203
hsql 127.0.0.1 9001
telnet 127.0.0.1 4202
-------
Ready!
openejb-3.1.4_hello> %OPENEJB_HOME%/bin/openejb deploy hello.jar
Application deployed successfully at "hello.jar"
App(id=D:\resources\programs\java\openejb\openejb-3.1.4\apps\hello.jar)
EjbJar(id=hello.jar, path=D:\resources\programs\java\openejb\openejb-3.1.4\apps\hello.jar)
Ejb(ejb-name=HelloBean, id=HelloBean)
Jndi(name=HelloBeanRemote)
Application deployed successfully at "hello.jar"
App(id=D:\resources\programs\java\openejb\openejb-3.1.4\apps\hello.jar)
EjbJar(id=hello.jar, path=D:\resources\programs\java\openejb\openejb-3.1.4\apps\hello.jar)
Ejb(ejb-name=HelloBean, id=HelloBean)
Jndi(name=HelloBeanRemote)
openejb-3.1.4_hello> java -cp %OPENEJB_HOME%/lib/openejb-client-3.1.4.jar;%OPENEJB_HOME%/lib/javaee-api-5.0-3.jar;. org.acme.HelloClient
Hello World!!!!
Hello World!!!!
- Developing an Application Client to access EJB - Geronimo Tutorial
- 日常茶飯事
- 2009. 6. 13. 15:15
- Developing an Application Client to access EJB
1. openejb-jar.xml 그대로 사용
2. Lookup
3. 라이브러리 추가
Add External JARs : <GERONIMO_HOME>\repository\org\apache\openejb\openejb-client\3.0.1\openejb-client-3.0.1.jar
4. SimpleEJB.jar 로 만들어서 Geronimo Console에서 배치하지 않고 그냥 서버 실행
Geronimo Console - Applications - EJB JARs 에서 등록된 것을 확인할 수 있다.
5. 로그 확인
1. openejb-jar.xml 그대로 사용
2. Lookup
3. 라이브러리 추가
Add External JARs : <GERONIMO_HOME>\repository\org\apache\openejb\openejb-client\3.0.1\openejb-client-3.0.1.jar
4. SimpleEJB.jar 로 만들어서 Geronimo Console에서 배치하지 않고 그냥 서버 실행
Geronimo Console - Applications - EJB JARs 에서 등록된 것을 확인할 수 있다.
5. 로그 확인
2009-06-13 14:55:56,859 INFO [startup] Jndi(name=CountryCapitalBeanRemote) --> Ejb(deployment-id=SimpleEJB/CountryCapitalBean)
Recent comment