参考
GlassFishとは
ログ
環境
% cd % which java /usr/bin/java % java -version java version "1.8.0_71" Java(TM) SE Runtime Environment (build 1.8.0_71-b15) Java HotSpot(TM) 64-Bit Server VM (build 25.71-b15, mixed mode)
brewで入るのかな?
% brew search glassfish glassfish
あるぽ
% brew install glassfish ==> Downloading http://download.java.net/glassfish/4.1.1/release/glassfish-4.1.1.zip ######################################################################## 100.0% ==> Caveats The home of GlassFish Application Server 4 is: /usr/local/opt/glassfish/libexec You may want to add the following to your .bash_profile: export GLASSFISH_HOME=/usr/local/opt/glassfish/libexec export PATH=${PATH}:${GLASSFISH_HOME}/bin Note: The support scripts used by GlassFish Application Server 4 are *NOT* linked to bin. ==> Summary 🍺 /usr/local/Cellar/glassfish/4.1.1: 1,611 files, 126.8M, built in 3 minutes 26 seconds %
入った。起動してみる。You may want to add the following to your .bash_profile:
と言われているように、デフォルトではPATH通ってないので、binのPATHを打つ。
% /usr/local/Cellar/glassfish/4.1.1/libexec/glassfish/bin/asadmin start-domain domain1 Waiting for domain1 to start ... Successfully started the domain : domain1 domain Location: /usr/local/Cellar/glassfish/4.1.1/libexec/glassfish/domains/domain1 Log File: /usr/local/Cellar/glassfish/4.1.1/libexec/glassfish/domains/domain1/logs/server.log Admin Port: 4848 Command start-domain executed successfully. %
で、なんか立ってるのか?
% lsof -i tcp:4848 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 22996 otiai10 384u IPv6 0xffaa401a3ea77ea9 0t0 TCP *:appserv-http (LISTEN) % lsof -i tcp:8080 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 22996 otiai10 367u IPv6 0xffaa401a3fee3969 0t0 TCP *:http-alt (LISTEN) %
4848
番と8080
番でなんかjavaで立ってる。ブラウザで確認。
4848番
うわ、なんかすげーORACLEっぽい。知らんけど。
8080番
なんか普通に動いてる。
Hello, GlassFish
Tomcatと同じレイヤーということは、なんか設定ファイルがあって、特定のURL pathに対して、特定のアクションを紐づけられるんじゃねえかな、と思ったり。
Deploying and Undeploying Applications (Oracle GlassFish Server 3.0.1 Quick Start Guide)
To deploy the hello.war sample, the command is:
as-install/bin/asadmin deploy sample-dir/hello.war
え???? まじ???? そういう感じなの?????!!!?!
とりあえずやってみる。上記のページから(若干怖いけどoracleドメインだからだいじょうぶだろう)hello.war
をダウンロードして、
% /usr/local/Cellar/glassfish/4.1.1/libexec/bin/asadmin deploy ~/Downloads/hello.war Application deployed with name hello. Command deploy executed successfully. %
んんんん??? 成功してるぞ!!?? 確認
otiai10でsubmit、っと
わーお... It works...
URL Pathと処理の紐づけはいつどこがしてるんだ??? .war
じゃなくてビルド前の.java
が見たいぞい。
とりあえずこのコントローラはAdmin Console(4848番)から消せるようだ。
hello.warを雛形に、unko.warをつくる
hello.war
が動いたのが確認できたので、これをほぼ丸パクリ雛形にして、unko.war
をつくって /unko
をハンドリングしてみる。
% cd % mkdir unko % cd unko % jar xvf ~/Downloads/hello.war created: META-INF/ inflated: META-INF/MANIFEST.MF created: WEB-INF/ created: WEB-INF/classes/ inflated: WEB-INF/classes/LocalStrings.properties created: images/ inflated: WEB-INF/sun-web.xml inflated: WEB-INF/web.xml inflated: images/duke.waving.gif inflated: index.jsp inflated: response.jsp %
解凍できた。
ためしに、これを変更せずにwarに固めてdeployしてみる
% jar cf ../unko.war . % /usr/local/Cellar/glassfish/4.1.1/libexec/bin/asadmin deploy ../unko.war remote failure: Error occurred during deployment: Exception while loading the app : java.lang.Exception: Virtual server server already has a web module hello loaded at /hello therefore web module unko cannot be loaded at this context path on this virtual server. Please see server.log for more details. Command deploy failed. %
ひとつのdeployされたApplicationはmoduleとして扱われ、異なるmodule同士は同じURL Routingを持ってはいけない、みたいな雰囲気を感じたので満足です。
さて、unkoをつくっていく。
プロジェクト内でhello
の記述があるのはこんくらい
だるいんで、これ全部unko
に変えて
.warファイルをビルド
% jar cf ../unko.war .
デプロイ --force
% /usr/local/Cellar/glassfish/4.1.1/libexec/bin/asadmin deploy --force ../unko.war Application deployed with name unko. Command deploy executed successfully. %
文字化けしてる。jspを編集してmeta
タグ挿入したけどそういうことではないっぽい。
これっぽい。だるいのでまた今度でいいや。
_人人人人人人人人人人人人_
> というかJava書いてない <
 ̄^ Y ^ Y ^ Y ^ Y ^ Y ^ Y ^ Y  ̄
DRYな備忘録