実はserversにtomcat6を追加する方法、あるんですよこれが。ちょっと古めの環境で萎えている方も最新のeclipseを使ってみませんか?
JDKも1.9の話が出始め、tomcat8も正式リリースされ、javaを取り巻く環境は新しくなっていますね。
しかし、
オンプレミス環境、政治的理由によりAWSが使えない。各種ミドルウェアの更新もほぼできない環境。そんな私達は未だにJDK1.6 + tomcat6である。
なんていう方はまだまだ沢山いると思います。JDK1.3が余裕で現役の場合もありますね。実に闇が深い業界です。しかしこれでへこたれてはいけません。せめて最新のeclipseくらい使って抗いましょう。
本当はeclipse marsを使いたいところですが、javaのコードフォーマッターがバグっているっぽく、フォーマット結果が異なってしまうため、gitやsvnで無駄に差分が出てしまうので、暫く様子を見たほうがいいです。
[contents:]
やるお、serversにtomcat6を追加する
よーし、eclipse lunaのDLも完了した。tomcatは8入れたいけど6で我慢。さて、ではserversからtomcatを追加するか。
ん?あれ?
Tomcat version 6.0 only supports J2EE, 1.2, 1.3, 1.4 and Java EE 5
諦めるなやるお!まだ勝負はおわっちゃいないぞ!回避方法はある!
気休めはやめてくれよ・・・対応してないってはっきり書いてあるよ・・・
確かに「表面上は」追加できない。しかしな、あくまでウィザードから追加はできないだけなんだ。まずはさっきのtomcat6は古いJDKしか対応してねーよエラーの状態で、プロジェクトを追加せずそのままFinishしてサーバを追加しろ。
中身が空っぽのserversが追加されたよ。どーすんのさこれ・・・
よし、いいぞ。Package ExplorerにServersプロジェクトが追加され、その中に「Tomcat v6.0 Server at localhost-config」というフォルダが追加されたな?serversを追加した時に自動で作られるやつだな。その中のserver.xmlを開くんだ。
開いたよ。
よし、じゃあserver.xmlを次のように修正して保存するんだ。
変更前
<?xml version="1.0" encoding="UTF-8"?>< <Server port="8005" shutdown="SHUTDOWN"> <Service name="Catalina"> <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine defaultHost="localhost" name="Catalina"> <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"> </Host> </Engine> </Service> </Server>
※ 解りやすいように色々削除して整形しています。
変更後
<?xml version="1.0" encoding="UTF-8"?>< <Server port="8005" shutdown="SHUTDOWN"> <Service name="Catalina"> <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine defaultHost="localhost" name="Catalina"> <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"> <Context docBase="gradle-web" path="/gradle-web" reloadable="false" source="org.eclipse.jst.jee.server:test" /> ★これを追加 </Host> </Engine> </Service> </Server>
修正して保存したよ。
さあやるお、serversの設定を開いて、Modulesタブを確認してみるんだ。
うっそ!!なんか追加されてるんですけど!!
な?諦めなくてよかったろ?serversのビュー上は紐付きが無いように見えるが安心しろ。ちゃんとtomcatを起動するとプロジェクトがロードされるぞ。serversのビューはあくまで表示だけで、設定の実体はserver.xmlだから無関係なんだなこれが。
まじで助かったよやらないお!
やかったな。あ、確か同じようなこと言ってたやつが20人ほどいたんだが、ちょっと教えてやってくれよ。な?
ちょっとコンビニ行ってくる
雑感
よくプロジェクトの環境構築手順書にeclipseについて書かれているんですが、バージョンによってこの問題が起きたりして困るんですよね。確かeclipse3系の時はこんな警告無しに追加できてたと思うんですが、4.1だか4.2くらいから追加されたみたいですね。鬱陶しいです。
もしgit等でtomcatのconfをバージョン管理している場合、serversの設定のGeneral InformationタブのConfiguration path欄のBrowseをクリックして、gitで管理しているconfをフォルダを選択すると、プロジェクト専用のconfを読み込む事ができます。そのconf/server.xmlに以下を記述しておけば、前述と同様にtomcat6環境でもJDK1.8のプロジェクトを追加する事も可能です。
<Context docBase="gradle-web" path="/gradle-web" reloadable="false" source="org.eclipse.jst.jee.server:test" />
結構古いeclipseを頑なに使い続ける方もいますが、Eclipseマーケットプレイスが無かったり、色々不便になることも増えると思うので、可能な限り最新のeclipseを使っていきたいですね!