https://glassfish-samples.dev.java.net/source/browse/*checkout*/glassfish-samples/tags/JAVAEE6_SAMPLES-0_9-b16/ws/javaee6/docs/list.html

링크를 보면 J2EE 6와 Servlet 3.0의 달라진 점들을 볼 수 있다.

좀더 뒤져보니 실제 소스는 
로 다운로드 하면 된다. ^^;

해당 파일을 다운 받아서
java -jar javaee6-samples-1.0-b03-installer.jar
를 커맨드 창에서 수행하면 된다.

그렇다면 Servlet 3.0은 머가 어떻게 바뀌었을까?
외국에 친절한 아저씨가 정리해 놓은 글이 있으니 아래 링크를 참조하기 바란다.
(영어 잘 못해도 자바 할 줄 알면 이해 될꺼다)

내가 필요한 기능들만 간단하게 두 줄로 요약하면,
- web.xml에 더 이상 설정할 필요없이 소스에 servlet과 filter를 지정하면되고, fragment라는 것도 지원한다.
- 하나의 쓰레드에서 여러 요청을 처리할 수 있는 AsyncContext를 제공한다.


그럼 이러한 Servlet 3.0을 돌릴수 있는 서버는 없을까나?
당연히 있다. Glassfish 3.0에서는 Servlet 3.0을 지원하고, J2EE 6를 지원한다.
가장 쉽게 개발해 볼 수 있는 환경은 glassfish가 내장된(?) eclipse를 설치해서 써 보는거다.
링크는 아래에...


Posted by tuning-java
,
Posted by tuning-java
,

서버가 정상적으로 수행되었다면, 관리자 콘솔에 들어가야 한다.
웹과 커맨드라인 접근의 두가지 방법이 있는데, 웹으로 들어가보자.

웹 콘솔에 들어가는 방법은 다음의 URL로 들어가면 된다.
http://localhost:4848
그런데 이렇게 들어가면 id/pw를 묻는다.(이거 찾느라 좀 시간이 걸렸음)
만약 Glassfish를 서버에 설치했다면,
localhost 대신 서버 IP를 입력해야 한다.

admin 콘솔의 설치시 id/pw는 admin/adminadmin 이다.



Posted by tuning-java
,

Glassfish를 설치하여 사용하다보면,
없는 URL을 요청할 경우 디렉토리 목록이 나오게 된다.

대부분의 시스템 운영자는 디렉토리 목록에 어떤 파일이 있는지를 보여주기 안좋아 하므로,
옵션을 수정하여 안보이도록 해야 한다.


{glassfish설치위치}/domains/domain1/config
디렉토리로 이동한다.

디렉토리에 있는 default-web.xml 파일의 listing 부분을 false로 지정해야 한다.

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>0</param-value>
    </init-param>
    <init-param>
      <param-name>listings</param-name>
      <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

참고로 내가 못찾은 건지 모르겠지만,
설정에는 이 옵션을 지정하는 부분이 없다.

Posted by tuning-java
,

ant 스크립트를 수행한 이후에 몇가지 설정을 마치면 서버를 기동할 수 있다.

http://docs.sun.com/app/docs/doc/819-3193/aboaa?a=view

링크를 보면 몇몇가지 설정할 게 있으니 참조하기 바란다.
간단하게 정리하면(윈도우용)
1. bin 디렉토리를 path에 추가
2. AS_ADMIN_USER 라는 것을 환경 변수에 추가하고, 설치할때의 PC나 서버 계정을 추가한다.

서버를 다음의 명령어로 시작할 수 있다.

asadmin start-domain domain1

정상적으로 수행되었다면 다음과 같은 메시지가 나타난다.
도메인 domain1을(를) 시작합니다. 잠시 기다려 주십시오.
로그가 D:\glassfish\domains\domain1\logs\server.log(으)로 리디렉션되었습니다.
마스터 비밀번호를 입력하십시오>
출력을 D:/glassfish/domains/domain1/logs/server.log(으)로 리디렉션하는 중
도메인 domain1에서 클라이언트 요청을 받을 준비가 되었습니다. 백그라운드에서 추가
 서비스를 시작하는 중입니다.
다음에서 해당 구성 및 로그를 사용하여 도메인 [domain1]이(가) [Sun Java System Ap
plication Server 9.1_02 (build b04-fcs)]을(를) 실행하는 중입니다: [D:\glassfish\
domains].
관리 콘솔은 [http://localhost:4848]에서 사용할 수 있습니다.
"asadmin" 명령에도 같은 포트 [4848]을(를) 사용합니다.
사용자 웹 응용 프로그램은 다음 URL에서 사용할 수 있습니다:
[http://localhost:8080 https://localhost:8181 ].
다음 웹 내용을 사용할 수 있습니다:
[/web1  /__wstx-services ].
표준 JMX 클라이언트(예, JConsole)는 도메인 관리를 위해 JMXServiceURL:
[service:jmx:rmi:///jndi/rmi://smlee:8686/jmxrmi]에 연결될 수 있습니다.
도메인은 최소한 다음 포트에서 연결을 수신합니다:
[8080 8181 4848 3700 3820 3920 8686 ].
도메인이 Application Server 클러스터 및 다른 독립 실행형 인스턴스를 지원하지 않
습니다.

설치시 유의사항
서버를 수행할때 리눅스는 상관 없겠지만,
PC 이름이 한글일 경우 서버가 정상적으로 뜨지 않을 수 있다.
이 경우 domain1/logs 디렉토리의 server.log 파일에 다음과 같은 메시지가 나타난다.

com.sun.appserv.server.ServerLifecycleException
 at com.sun.enterprise.admin.server.core.JmxConnectorLifecycle.onStartup(JmxConnectorLifecycle.java:153)
 at com.sun.enterprise.server.ApplicationServer.onStartup(ApplicationServer.java:442)
 at com.sun.enterprise.server.ondemand.OnDemandServer.onStartup(OnDemandServer.java:120)
 at com.sun.enterprise.server.PEMain.run(PEMain.java:411)
 at com.sun.enterprise.server.PEMain.main(PEMain.java:338)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at com.sun.enterprise.server.PELaunch.main(PELaunch.java:412)
Caused by: java.lang.NullPointerException
 at javax.management.remote.JMXConnectorServerFactory.newJMXConnectorServer(JMXConnectorServerFactory.java:283)
 at com.sun.enterprise.admin.jmx.remote.server.rmi.JmxConnectorServerDriver.startConnectorServer(JmxConnectorServerDriver.java:215)
 at com.sun.enterprise.admin.server.core.JmxConnectorLifecycle.onStartup(JmxConnectorLifecycle.java:134)
 ... 9 more

Posted by tuning-java
,
Glassfish를 설치하고 나서 가장 황당했던것이, bin 디렉토리에 아무것도 실행파일이 없다는 것이다.

관련 문서도 눌러 보면 Glassfish에 대한 문서가 아니라, Sun Java System Application Server 에 대한 문서고... - -;

Glassfish의 압축을 푼 root 디렉토리를 보면 setup.xml과 setup-cluster.xml 두개의 파일이 존재한다.
클러스터 구성할 것이 아니라면 setup.xml을 사용하면 된다.

Ant를 이용하여 설치하기
그래서, 가장 먼저 ant를 설치해야 한다. (그런데 친절하게도 glassfish\lib\ant 디렉토리가 포함되어 있으며, 여기의 실행파일을 사용해도 된다.)
ant의 bin 디렉토리를 갖고 있는 장비의 path에 등록을 하고,
setup.xml 파일이 있는 위치에서 다음의 명령을 수행한다.
ant -buildfile setup.xml

아니면 귀찮으면 다음과 같이 해도 된다.

lib\ant\bin\ant -f setup.xml

그러면 아래와 같은 결과가 떨어지면서 필요한 파일들이 생성된다.

설치법 원문은 다음 링크를 참조한다.
https://glassfish.dev.java.net/downloads/v2.1-b60e.html

아래의 내용을 펼치면 된다. ^^;

Posted by tuning-java
,
Glassfish는 J2EE 5를 따르는 오픈소스 애플리케이션 서버를 말한다.
참고로 J2EE 5 는
-JavaServer Pages(JSP) 2.1
-JavaServer Faces(JSF) 1.2
-Servlet 2.5
-Enterprise JavaBeans 3.0
-Java API for Web Services(JAX-WS) 2.0
-Java Architecture for XML Binding(JAXB) 2.0
-Web Services Metadata for the Java Platform 1.0
라는 여러 표준의 버젼을 따른다.

다운로드는 아래의 링크에서 맘에 드는 버젼으로 선택한다.
https://glassfish.dev.java.net/public/downloadsindex.html

Glassfish 설치하기
Jar를 다운로드 했다면, jar파일이 있는 위치에서 다음의 명령어를 친다.
java -Xmx256m -jar jar파일명
그러면 동의하라는 반 강제적 화면이 나타나고,
스크롤을 아래로 주루룩 내린 후 동의를 하면,
파일들의 압축이 풀릴것이다.

Posted by tuning-java
,