'Geronimo'에 해당되는 글 5

  1. 2009.07.26 Java EE 5 스펙에서 JSTL 구현
  2. 2009.06.16 Web Application for EJB access - Geronimo Tutorial
  3. 2009.06.13 Developing an Application Client to access EJB - Geronimo Tutorial
  4. 2009.06.13 Geronimo Eclipse Plugin
  5. 2009.06.13 Apache Geronimo

Java EE 5 스펙에서 JSTL 구현

- Geronimo의 배신: GlassFish JSTL 1.2와 Apache Geronimo 2.0 통합 패키지 사용하기 (한글)

- JSF와 JSP 1.2
JSF 1.0에서는 JSTL의 EL과 비슷하게 동작하는 고유의 EL을 갖고 있으며, 이 때까지는 JSF EL과 JSTL EL은 호환성이 없었다.

- 통합 표현식 언어(Unified expression language)
자바 EE 5에서는 JSTL과 JSF의 EL이 합쳐져 JSTL과 JSF를 혼합해 쓰는 것이 가능해졌다.

- 자바 EE 5의 일부로서 EL
J2EE 1.4 스펙까지는 JSTL 구현이 필수 사항이 아니었지만 자바 EE 5 스펙에서는 JSTL 구현이 필수 사항이다.

- 제로니모와 글래스피시 JSTL
아파치 제로니모 개발자들은 자바 EE 5 구현체인 제로니모 2.0을 만들 때, JSTL 구현체를 포함해야만 했다.
통합 표현식 언어는 JSTL 구현체의 주요 요구사항이었지만, 많은 JSTL 구현체는 JSF와 함께 동작할 수 없어서 기존 구현체 중에서 선택할 수 없었다.
다행히도 제로니모 팀은 직접 JSTL과 통합 표현식 언어 구현체를 만드는 대신 썬의 글래스피시를 활용할 수 있었다.
글래스피시는 자바 EE 5 스펙을 위한 썬의 참조 구현체다.

Web Application for EJB access - Geronimo Tutorial

- Web Application for EJB access

그대로 따라하면 됨.

특이한 JSP
<form method="get" action="index.jsp">
	<input type="text" name="amount" size="25"><br>
	<p>
	<input type="submit" value="Submit">
	<input type="reset" value="Reset">
</form>
<jsp:include page="/ConverterHandler" /> <!-- 폼이 전송되면 다시 이 페이지로 와서 서블릿으로 전송된다. 서블릿을 거쳐서 페이지로 오는게 아님. 페이지 이동을 위한 구문이나 스크립트를 사용하지 않았음. -->
- EJB 프로젝트명을 수정했는데 반영이 안됨.
- WebEJB의 JSP를 수정했는데 반영이 안됨.
[todo] 바로 적용하게 하는 방법이 없나?

Developing an Application Client to access EJB - Geronimo Tutorial

- Developing an Application Client to access EJB

1. openejb-jar.xml 그대로 사용

2. Lookup
Properties prop=new Properties();
prop.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory");
prop.put("java.naming.provider.url", "ejbd://localhost:4201");
Context context = new InitialContext(prop);
CountryCapital myejb =(CountryCapital)context.lookup("CountryCapitalBeanRemote");

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)

Geronimo Eclipse Plugin

- Apache Geronimo v2.1 Development environment

- Installing Geronimo Eclipse Plugin

- 프로젝트 생성시 Target Runtime을 Geronimo로 설정해야 WEB-INF/geronimo-web.xml가 생성되고 제대로 Deploy된다.
기존에 있던 프로젝트를 Geronimo로 Deploy하는 것은 안됨.

- Geronimo를 Server runtime environment에 추가하면 Servers View에는 보이는데 Project Explorer의 Servers에는 보이지 않는다.

- 설정시 포트를 변경했는데 적용이 안됨.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<servers>
  <server auto-publish-setting="2" auto-publish-time="1" configuration-id="/Servers/Tomcat v6.0 Server at localhost-config" deployDir="wtpwebapps" hostname="localhost" id="Tomcat v6.0 Server at localhost" name="Tomcat v6.0 Server at localhost" runtime-id="Apache Tomcat v6.0" server-type="org.eclipse.jst.server.tomcat.60" server-type-id="org.eclipse.jst.server.tomcat.60" start-timeout="45" stop-timeout="15" testEnvironment="true" timestamp="1">
    <list key="modules" value0="JPetStore::org.eclipse.jst.j2ee.server:JPetStore::jst.web::2.4"/>
  </server>
  <server hostname="localhost" id="Apache Geronimo v2.1 Server at localhost" inPlaceSharedLib="false" name="Apache Geronimo v2.1 Server at localhost" runFromWorkspace="false" runtime-id="Apache Geronimo v2.1" selectClasspathContainers="false" server-type="org.apache.geronimo.server.21" server-type-id="org.apache.geronimo.server.21" start-timeout="240" stop-timeout="30" timestamp="2">
    <map RMIRegistry="1099" WebConnector="8088" adminID="system" adminPassword="manager" key="geronimo_server_instance_properties" logLevel="--long" maxPings="40" pingDelay="10000" pingInterval="5000" publishTimeout="900000"/>
    <list key="modules" value0="test2::org.eclipse.jst.jee.server:test2::jst.web::2.5"/>
  </server>
</servers>
WORKSPACE\.metadata\.plugins\org.eclipse.wst.server.core\server.xml 에도 적용이 되었지만 8080 포트로 운영된다.

Apache Geronimo

제로니모 프로젝트는 오픈소스로 구성된 Java EE 어플리케이션 서버와 개발환경을 제공한다.

- Apache Geronimo

- Apache Geronimo v2.1 documentation

- Apache Geronimo v2.1 Samples
예제와 Tutorial이 잘 정리되어 있다.