GlassFish」タグアーカイブ

eclipse上でのglassfish4をDebugするための追加手順

EclipseでGlassfish4をDebugしようとすると、69%起動とでてそこで固まってしまう事象が発生。(というか、Debugをしたら毎回だった。)

 

調べると、”Glassfish 4.0 adapter in Eclipse”のバグとのこと。

(7/11追記)

改めてバグ情報を見直すと下のようにあるのでGlassFishの3系でも発生していた模様。

Same issue than chemi, fresh Kepler 64 bits installation on Windows 7 64 bits.
Same problem with glassfish 3 or 4.

(7/11追記終了)

(8/4追記)

eclipseのサーバ追加時に設定したglassfish用のID/Passwordと、glassfishに実際に設定してあるID/Passwordが違う場合も発生した。(glassfish 4.0のデフォルトは”admin/無”っぽい)

(8/4追記終了)

Fix版でていてUpdateManager経由でインストールできるとのことなので早速インストール。

http://download.java.net/glassfish/eclipse/juno

 

インストール後Eclipse再起動し、Eclipse上でのサーバ(サーバビューに出るやつ)も再度作り直した。

完全に死にきっていないものがあったのかPortがふさがっている旨のメッセージが出たのでPCごと再起動したところ、無事にデバッグできるようになった。

 

 

DebugできなかったときEclipseのlogに出ていたスタックトレースは以下のはず。(退避していなかったけど時間的におそらく。。。)

 

(起動時)

!ENTRY oracle.eclipse.tools.glassfish 4 150 2013-07-08 17:35:17.312
!MESSAGE Unable to start server on time.
!STACK 0
java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:258)
at java.util.concurrent.FutureTask.get(FutureTask.java:119)
at oracle.eclipse.tools.glassfish.GlassfishGenericServerBehaviour.launchServer(GlassfishGenericServerBehaviour.java:170)
at oracle.eclipse.tools.glassfish.GlassfishServerLaunchDelegate.startDASAndTarget(GlassfishServerLaunchDelegate.java:201)
at oracle.eclipse.tools.glassfish.GlassfishServerLaunchDelegate.launch(GlassfishServerLaunchDelegate.java:109)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:700)
at org.eclipse.wst.server.core.internal.Server.startImpl2(Server.java:3537)
at org.eclipse.wst.server.core.internal.Server.startImpl(Server.java:3473)
at org.eclipse.wst.server.core.internal.Server$PublishJob.run(Server.java:311)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

 

(再起動時)

!ENTRY oracle.eclipse.tools.glassfish 4 1 2013-07-09 22:42:05.118
!MESSAGE GlassFish: in SunAppServerBehaviour restart
!STACK 1
org.eclipse.core.runtime.CoreException: Unable to start server on time.
at oracle.eclipse.tools.glassfish.GlassfishServerLaunchDelegate.abort(GlassfishServerLaunchDelegate.java:73)
at oracle.eclipse.tools.glassfish.GlassfishServerLaunchDelegate.startDASAndTarget(GlassfishServerLaunchDelegate.java:205)
at oracle.eclipse.tools.glassfish.GlassfishServerLaunchDelegate.launch(GlassfishServerLaunchDelegate.java:109)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:700)
at oracle.eclipse.tools.glassfish.GlassfishGenericServerBehaviour$1.run(GlassfishGenericServerBehaviour.java:238)
Caused by: java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:258)
at java.util.concurrent.FutureTask.get(FutureTask.java:119)
at oracle.eclipse.tools.glassfish.GlassfishGenericServerBehaviour.launchServer(GlassfishGenericServerBehaviour.java:170)
at oracle.eclipse.tools.glassfish.GlassfishServerLaunchDelegate.startDASAndTarget(GlassfishServerLaunchDelegate.java:201)
… 5 more
!SUBENTRY 1 oracle.eclipse.tools.glassfish 4 150 2013-07-09 22:42:05.118
!MESSAGE Unable to start server on time.
!STACK 0
java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:258)
at java.util.concurrent.FutureTask.get(FutureTask.java:119)
at oracle.eclipse.tools.glassfish.GlassfishGenericServerBehaviour.launchServer(GlassfishGenericServerBehaviour.java:170)
at oracle.eclipse.tools.glassfish.GlassfishServerLaunchDelegate.startDASAndTarget(GlassfishServerLaunchDelegate.java:201)
at oracle.eclipse.tools.glassfish.GlassfishServerLaunchDelegate.launch(GlassfishServerLaunchDelegate.java:109)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:700)
at oracle.eclipse.tools.glassfish.GlassfishGenericServerBehaviour$1.run(GlassfishGenericServerBehaviour.java:238)

WebSocket(JSR 356)を使ってみる。その1(まずは軽く触れてみる)

EclipseからGlassfishを使う環境は何とかできたっぽいのでWebSocketを使ってみる。

少し前の情報からアノテーションがダイナミックに変わっているので注意。

@WebSocketEndpoint -> @ServerEndpointとかとか(リンク

 

こちらのブログを参考にまずはほぼコピペして動作確認。

キャプチャを簡単にできるかと軽く見てみたけどIE10の開発ツールは特に表示されない模様。

FFのTamperData(プラグイン)では、Connectionがupgradeされていることまでは確認できたけど、upgrade後の動作は見れない模様。コネクションクローズ等も拾えなかった。

WebSocketキャプチャ

(request)

Status=Web Socket Protocol Handshake – 101
X-Powered-By=Servlet/3.1 JSP/2.3 (GlassFish Server Open Source Edition  4.0  Java/Oracle Corporation/1.7)
Server=GlassFish Server Open Source Edition  4.0
Connection=Upgrade
Sec-WebSocket-Accept=ZjJVgnGKxiMQbZjHxqx5bR7qVGY=
Upgrade=websocket

(responce)

Host=localhost:8080
User-Agent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language=ja,en-us;q=0.7,en;q=0.3
Accept-Encoding=gzip, deflate
Sec-WebSocket-Version=13
Origin=http://localhost:8080
Sec-WebSocket-Key=LLDpCnocJ5IY/JIJfax1mw==
Cookie=JSESSIONID=2718b10db58913be398a83618d52
Connection=keep-alive, Upgrade
Pragma=no-cache
Cache-Control=no-cache
Upgrade=websocket

Chromeのデベロッパーツールでも同様に、Upgradeまでしか拾えない模様。

なお、Wiresharkだとキャプチャできるとのことなので後ほど使ってみる。

 

ちなみに下のようにアノテーションを削った場合は404と素直なエラーがでてくれた。

//@ServerEndpoint(“/hello”)
public class HelloWorld {

Status=Not Found – 404
X-Powered-By=Servlet/3.1 JSP/2.3 (GlassFish Server Open Source Edition  4.0  Java/Oracle Corporation/1.7)
Server=GlassFish Server Open Source Edition  4.0

JavaEE7(GlassFish4.0)のEclipse4.3(Kepler)におけるMaven(M2E)連携

Eclipse4.3でMavenプロジェクトを作成しようとしたら手間だったので手順の記録。

 

最初にm2e-wtp(Mavan Integration for Eclipse WTP)をマーケットプレースからインストール。

ヘルプ->Eclipseマーケットプレース->検索で「m2e-wtp」にてインストールを実行。

Junoと書いてあるがリリース元によると”m2e-wtp 1.0.0 adds Java EE 7 support in Kepler”となっている。

マーケットプレース

Pleiades All in Oneだとアップデートでいいかどうかを聞かれるがとりあえず次へ次へとそのままインストール

WTPインストール手順1

WTPインストール手順2

WTPインストール手順3

 

新規->MavanプロジェクトからMavanプロジェクトを作成しようとしたところ、アーキタイプにwebapp-javaee7が無い。(Eclipse4.2ではこれででてきた記憶がある。。)

Mavenプロジェクト追加1-1

 

理由があって外されたか、間にあっていないだけかは不明。

取り急ぎ、Mavenのリモートカタログを追加して凌ぐことにする。

ウィンドウ->設定->Maven->アーキタイプ->リモートカタログの追加から

http://repo1.maven.org/maven2/archetype-catalog.xmlをリモートカタログとして追加。

 

Maven2-1

Maven2-2

 

Eclipse再起動後(?)にwebapp-javaee7が選べるようになっているので指定しMavenプロジェクトとして作成。

Mavenプロジェクト追加1-1i

 

以下m2eのライフサイクルのエラーが出るのでクイックフィックスから修正。

Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-dependency-plugin:2.6:copy (execution: default, phase: validate)

(lifecycle-mapping-metadata.xmlをきちんと書いたほうがいいのかもしれないけどリンク先がわからなくなった。一応中国語参考のリンク

フィックス1

フィックス2

途中で対象を聞かれるのでとりあえずデフォルト

フィックス3

修正がすんだらプロジェクトをAlt+F5でMavenビルドしてサーバに追加したらOK。

 

リンク

GlassFish4まだろくに触っていないけど、Eclipse4.3(Kepler)がリリースされたので連携してみる。

Oracleのサイトを見ると、OEPEのUpdateManagerのリモートロケーションはまだ対応していないみたい。

OEPEリモート対応状況

 

アーカイブからのupdateは対応済みなのでいったん、Zipをダウンロード。

oepeレポジトリ

 

ヘルプ->新規ソフトウェアのインストール->使用可能なソフトウェアサイト->追加から先ほどのZipを指定。

b

 

追加したソフトウェアサイトからGlassFishツールをインストール。(ついでにドキュメントも)

プラグイン選択

 

そのまま次へ次へ同意とぽちぽち押して再起動。

 

07/09追加

Debugができなかったらリンク先の手順も追加

 

GlassFish4インストール(Eclipse4.2 Juno連携)

先日リリースされたGlassFish4をインストールしてEclipse(4.2/Juno)と連携する。

 

GlassFish4インストール

まずは、GlassFish4をダウンロード。

https://glassfish.java.net/download.html

1

 

ダウンロードしたZipを任意フォルダに展開。

展開されたフォルダ配下にある./glassfish4/bin/asadmin.batをダブルクリック実行。

起動コマンド

start-domainで起動実行

起動実行引数

http://localhost:4848/

にアクセスしDomain->Administrator Passwordからパスワードを設定。

パスワード変更

 

取り急ぎGlassFishのインストールはここまで。

 

連携用Pluginインストール

updateサイト(http://download.oracle.com/otn_software/oepe/juno)から

GlassFishツールをインストール。

Update Manager

更新サイトアドレス

選択プラグイン

インストール後eclipseの再起動を求められるので再起動を実行する。

 

Eclipse上でのサーバ・プロジェクト設定

(サーバ設定)

ファイル->新規->その他->サーバー->サーバーを選択。

8

 

サーバの種類選択画面が出るのでGlassfish4.0を選択

9

 

設定を聞かれるのでJREとGlassFishのインストールディレクトリを指定

10

 

管理者のIDとパスワードを指定

11

 

(プロジェクト設定)

ファイル->新規->動的WebProjectを選択。

名前を任意入力し次へ

12

 

そのまま次へ

13

 

web.xmlデプロイメント記述子の生成にチェックをいれて完了

14

 

疎通確認用に作成したプロジェクトのWebContent配下にindex.htmlを作成。

16

 

サーバタグから、GlassFishに作成したプロジェクトを追加。

17

 

サーバタグのGlassFishに関するステータスが「始動済み、同期済み」となっていることを確認し

プロジェクトのトップページ(http://localhost:8080/プロジェクト名/)にアクセス。

作成したhtmlが表示されていれば疎通はOK

18

 

使い出しなので誤りあるかもしれませんが、気づいたら順次修正します

 

07/09追加

Debugができなかったらリンク先の手順も追加