質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

2回答

3251閲覧

オンプレ環境のTomcatで複数バージョンのAPIを実装したい

satouryou

総合スコア70

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2017/02/27 02:55

#やりたいこと
オンプレのTomcat環境で複数のバージョンを並行稼働させたい。

#経緯
アプリ用のWebAPIをSpringBootで構築し、オンプレの環境で動かすことになりました。

その際にインターフェースで改修が発生した場合には、
アプリを強制アップロードさせ、古いバージョンを保守しない仕様となりました。

しかし、iOSの審査用にリリース前の最新環境を用意する必要があり、
複数のバージョンで動かす必要が出てきてしまいました。

#条件
・Java8
・Tomcat8
・インフラは基本的には手動で管理
・運用側にはあまり負担をかけたくない
(運用側にインフラに詳しい方がいらっしゃらないので)
・複雑なソース管理をあまりしたくはない
(バージョンごとにパッケージを切るなど)
・リリースは業務用アプリということもあり、3カ月に一回あるかないか
・API自体は一般には公開予定なし、アプリからのアクセスのみ

#こちらで想定した方法
・controller層で吸収
→ロジック部分に及ぶ改修が入った際に、吸収しきれないとの判断から没

・必要な分だけコピペで切り分けを行う
→旧バージョンをコピペした新バージョンのソースを作成し、
のちに削除する。
ソースコードが乱雑化しやすくなってしまうことや、
改修を行う人によって、コピペする基準が異なってしまうので没

・バージョンごとにパッケージを分けてソース管理
→プロジェクトパッケージ配下にv1、v2とパッケージを作成し切り分ける方法だが、過去ソースが追いにくくなるので非推奨状態

・複数のwarファイルを用意する
→リリースごとにバージョン名が入ったwarを用意し、
war単位で切り分けを行う。
現状これが一番有力

#聴きたいこと
・上記の解決案のほかに対応方法や、このようにやっているなど知見を共有していただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

経験則で回答しますと、Webアプリのバージョンアップの際に、Java、Tomcatのバージョンも変えたりするので複数のTomcatをインストールしてそれぞれポート番号を変えてやってました。

/opt/tomcat6/webapps/hoge.war -> http://example.com:8888/hoge/
/opt/tomcat8/webapps/foo.bar -> http://example.com:8889/foo/

warにバージョン名が入ると、デプロイが面倒というのがあってこうしました。SpringBootでも同様かと思います。

投稿2017/02/28 06:10

編集2017/02/28 06:13
take88

総合スコア1351

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

satouryou

2017/03/07 01:53

回答ありがとうございました。
guest

0

自己解決

今回は、以下の対応で行うことになりました。

・複数のwarファイルを用意する
→リリースごとにバージョン名が入ったwarを用意する。

理由といたしましては、このTomcatに他のサービスをデプロイする必要があり、
一台のTomcatである程度まかなう必要が出てしまったからでした。

ご回答いただいたtake88様、ありがとうございました。

投稿2017/03/07 01:52

satouryou

総合スコア70

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問