Wednesday, May 29, 2013

Alfresco Shareのコンテキストパスを変えたい

こんにちは。おおたにです。

最近、子育て支援みたいな話で育休3年とか在宅勤務しやすいように制度を見直すみたいなことが言われてると思うんですが、なんかちょっと違和感あるんですよね。本当に働く女性を支援する効果があるのかな、と。
 3年もブランクが空くとその間の変化に対するキャッチアップも大変だろうし、そういう社員を抱える会社側にも大きなリスクになると思うわけで、正直なところ現実的じゃないような気がしています。在宅勤務についても、子供と大人一人という状態だと確実に子供の相手だけで手いっぱいになるわけで、在宅であろうと仕事するのって厳しいと思います。
 そもそもこれらの話って、女性が子供の面倒を見るってことが前提に置かれてるように思えてなりません。なんで、男性も、もっというと二人で面倒を見れるようにする、という方向にならないのかと思うと、とても残念な気持ちになります。。。

 例えば、育休3年取れるようにするよりも男性の育休取得率を高めようとか、在宅勤務については間口をもっと広げて両親ともに取りやすい環境を作るとか、そういうことの方がより重要なんじゃないかと思っています。子供の世話を二人に分散しつつ、両者とも仕事をできるような環境が整えばよいなと思っています(3年間は家で育てる、ということの是非については各論あるようなのでここではスルーします。個人的には必ずしも必要とは思わないですが…)。
 こんなことを考えていると、この会社は比較的融通利くので、そういうところを最大限活用していこう、と改めて思います。男性でも育休取れるし、業務内容によっては在宅勤務もできるし(1日単位で)。多分こういうのって社会制度的なものもあるけど、会社の風土みたいなのがより重要だと思うんですよね。会社が許容してくれれば良いわけなので。少しでもそういう方向に社会が変わっていくといいなと思う今日この頃です。


 さて、前置きが長くなってしまいましたが、今回はAlfresco Shareのコンテキストパスを変更する方法について紹介したいと思います。複数のAlfresco Shareが稼働しているときに、フロントのWebサーバやロードバランサ等でコンテキストパスを見てリクエストの振り先を変えたい等の要件があったりします。その場合には、Alfresco Shareのコンテキストパスを変更する必要があります。以下では現時点で最新のAlfresco Community 4.2.cを使って具体的な説明をしていきます。


そもそもコンテキストパスって何?


 まずは、この手のWebアプリケーションにアクセスするためのURLについておさらいします。Alfresco Shareでは、/shareにアクセスすると、/share/pageにリダイレクトされ、ログイン画面が表示されます(正確には/share/page/type/loginにアクセスしていますが、その詳細については割愛します)。
 このURLのうち、"/share"をコンテキストパス、"/page"をサーブレットパスと呼びます。コンテキストパスは、デプロイしたWebアプリケーションを識別するためのもので、サーブレットパスは、実際に処理を行うサーブレットを指定するためのものです。



コンテキストパスを変更しよう


 Alfresco Shareのコンテキストパスはデフォルトでは/shareとなっているので、これを変更することになります。Alfresco Shareはwar形式のファイルで提供されているため、コンテキストパスを変更する方法は以下のとおり、とても簡単です。
  1. 既存の Alfresco Shareをアンデプロイ(配備解除)する
  2. コンテキストパスを指定してAlfresco Shareをデプロイする
1. はTomcatであれば、Tomcat Web Application Managerから"Alfresco Project Slingshot"(Shareアプリケーション)を配備解除するか、Tomcat停止状態で/tomcat/webapps/shareを削除すればOKです。
 2. はTomcatであれば、Tomcat Web Application Managerからコンテキストパスを指定して(例えば"share2"など)、Alfresco Shareのwarファイルshare.warをデプロイします。もしくは、share.warをshare2.warなどにリネームしてから/tomcat/webapps/にコピーし、Tomcatを起動してオートデプロイを行います。

 以上でAlfresco Shareのコンテキストパスが変更されます。



コンテキストパスを変更したら…


 以上の変更を行ってからブラウザで/share2にアクセスすると、見事にコンテキストパスが変更されていることが確認できます。ただ、1点だけ注意が必要です。
/tomcat/shared/classes/alfresco-global.propertiesのパラメータのうち、share.context=shareとなっているものをshare.context=share2などのように、新しいコンテキストパスに変更する必要があります。
 これを変えないと、サイト招待のメールや、アクティビティフィードなどで問題が発生する可能性があります(具体的には、メールやフィードのリンクが適切に生成されないという問題です)。なので、Alfresco Shareのコンテキストパスを変更した際には必ずalfresco-global.propertiesの設定も変更しましょう。

No comments: