アプリ資産をシンボリックリンクで共有する問題について

このQ&Aのポイント
  • Solaris8 OSのサーバにサーブレットアプリケーションを構築しています。/export/home/Aと/export/home/Bの2環境でアプリケーションを構築しているのですが、リソースの節約のために一部のフォルダにシンボリックリンクをはることを試みました。しかし、アプリケーションルート内のjspフォルダに直接シンボリックリンクをはるとHTTP 500 内部サーバーエラーが発生し、どちらの方法でも影響がある原因があるようです。
  • Solaris8 OSのサーバにサーブレットアプリケーションを構築しています。/export/home/Aと/export/home/Bの2環境でアプリケーションを構築しているのですが、アプリケーションのリソースを節約するために一部のフォルダにシンボリックリンクをはりました。しかし、アプリケーションルート内のjspフォルダに直接シンボリックリンクをはるとHTTP 500 内部サーバーエラーが発生し、解決方法がわかりません。
  • 質問者はSolaris8 OSのサーバにサーブレットアプリケーションを構築しています。アプリケーションのリソースを節約するために、一部のフォルダにシンボリックリンクをはることを試みました。しかし、アプリケーションルート内のjspフォルダに直接シンボリックリンクをはるとHTTP 500 内部サーバーエラーが発生します。原因がわからず困っているようです。
回答を見る
  • ベストアンサー

アプリ資産をシンボリックリンクで共有する問題について

Solaris8 OSのサーバにサーブレットアプリケーションを構築しています。 ・/export/home/A ・/export/home/B 2環境のアプリケーションを構築しているのですが、 JavaのクラスやJSPが全く同じなため、B内の一部のフォルダから A内の一部のフォルダにシンボリックリンクをはることによって、 リソースの節約をしようとしています。 画面関連のフォルダ構成は、 /export/home/A/docbase/jsp/menu.jsp となっています。 しかし、ここでこのフォルダ構成で問題が起きました。 /export/home/B/docbase -> /export/home/A/docbase 上記のようにシンボリックリンクをはっていれば、問題ないのですが、 /export/home/B/docbase/jsp -> /export/home/A/docbase/jsp というようにアプリケーションルートである「docbase」内の jspフォルダに直接シンボリックリンクをはると、 HTTP 500 内部サーバーエラーが発生し、エラーログには cannot process configuration web service using "/B /export/home/B/docbase" cannot load servlet name: jsp java.lang.IllegalArgumentException:InputStream cannot be null というメッセージが表示されます。 サーブレットコンテナの定義ファイル(.xml)には <Context path="/B" docbase="/export/home/B/docbase" reloadable="false" /> というようにアプリケーションルートを指定しています。 JSP資産はどちらのはりかたでも共通なので、一見前者、後者どちらの 方法でも影響はなさそうなのですが、何か原因があるのでしょうか? よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

docbaseの設定より上位階層を迂回する参照をしようとしてるからじゃないのかな? ちょっと面倒だけど"/export/home/"でやって効くようならそういう事だと思うよ。 それができちゃうと他のユーザの階層のデータを勝手に覗けちゃう事になるしね。(それ以前に権限で阻まれるだろうけど)

paseri0903
質問者

お礼

※OSのバージョンに誤りがありました。 ※OSはSolaris9です。 docbaseより下位の階層を参照するルートは、やはりできないというとでしょうか? 担当者によると、Solaris8では実現できていたらしいのですが。。。 OSのバージョンアップによるシンボリックリンクの挙動の違い、ということも考えられるのでしょうか? ちなみに、/export/home/Aと/export/home/Bは同ユーザです。 (正しくディレクトリ構造を書くと、/export/home/X/Aと、/export/home/X/Bとなり、どちらもXユーザ権限の階層となっています)

関連するQ&A

  • Tomcat内のJSPファイルを削除したい

    事情がありにTomcat内のフォルダを 見せなければならなくなりました。 他人にTomcat内のファルダにあるサーブレット(+Beans等のクラスファイル)と JSPのソースを見られない様にしたいです。 またその上で実行も可能にしたいのですがどうすればいいでしょうか? サーブレット等は Tomcat 7.0/webapps/MyWebSite/WEB-INF/classes以下の クラスファイル(.class)だけを残してJavaファイル(.java)を削除 するか、Eclipseでソースをエクスポートさせない様にすると Javaのソースは見れなくなると思いますが、 JSPの場合だと Tomcat 7.0/webapps/MyWebSite/以下の JSPファイル(.jsp)を削除して、 Tomcat 7.0/work/ 以下にあるJSPをサーブレットに変換後 コンパイルされたファイル(.class)を残すだけではダメな様です。 他に方法はあるでしょうか? サーブレットのソースを見られないだけでも良しと考えるべきでしょうか?

    • ベストアンサー
    • Java
  • JAVAでHTML数値を参照する方法

    java(JSP,サーブレット)を始めたばかりで、よくわからなく お教えねがえないでしょうか java(JSP+HTML)からjava(JSP,サーブレット)には request.getParameter()でデータを参照することは 出来たのですが、 JSP(HTML+javascript)の構成の場合 HTMLのinput文(value)とjavascript 変数を <% JSP %>の中でどのように記述したらデータを参照出来る のでしょうか

    • ベストアンサー
    • Java
  • サーブレットからJSPへフォワード 画像が・・・

    サーブレットからJSPへフォワード 画像が・・・ javaの勉強をしながらサーブレットやJSPを使ったページを作ってるのですが、サーブレットで処理を行った後にJSPへ sc.getRequestDispatcher("/index.jsp").forward(req, res); で転送したら画像が表示されません。 JSPで記述したページを直接開いたりresponse.Redirect(URL)で遷移した場合は画像もちゃんと表示されます。画像だけではなくスタイルシート等も読み込んでいないようなのです・・・orz どうしたらいいのでしょうか? 【ファイル構成】 [プロジェクトフォルダ]  JSPファイル(.jsp)  [image]   画像ファイル  [style]   スタイルシート  [WEB-INF]   [classes]    サーブレットファイル(.class)

    • ベストアンサー
    • Java
  • JSPファイルを削除したいです。

    事情がありにTomcat内のフォルダを 見せなければならなくなりました。 他人にTomcat内のファルダにあるサーブレット(+Beans等のクラスファイル)と JSPのソースを見られない様にしたいです。 またその上で実行も可能にしたいのですがどうすればいいでしょうか? サーブレット等は Tomcat 7.0/webapps/MyWebSite/WEB-INF/classes以下の クラスファイル(.class)だけを残してJavaファイル(.java)を削除 するか、Eclipseでソースをエクスポートさせない様にすると Javaのソースは見れなくなると思いますが、 JSPの場合だと Tomcat 7.0/webapps/MyWebSite/以下の JSPファイル(.jsp)を削除して、 Tomcat 7.0/work/ 以下にあるJSPをサーブレットに変換後 コンパイルされたファイル(.class)を残すだけではダメな様です。 他に方法はあるでしょうか? サーブレットのソースを見られないだけでも良しと考えるべきでしょうか? http://ksrd.yahoo.co.jp/PAGE=DT_ACTIVE/OUTLINK=1/QID=12100680882/AID=236975321/SIG=12dep0io1/EXP=1359004059/*-http%3A//tomcat.apache.org/tomcat-7.0-doc/jasper-howto.html#Web_Application_Compilation 上記URLに何かそれらしき事が書いてあるのですがよく分かりません。 どうすればいいでしょうか? アクセスを制限する以外の方法でお願いします。

    • ベストアンサー
    • Java
  • 学校でJAVAを習ったらサイトは作れますか?

    下記のような事を習います。これだけできればプログラム未経験者でも自分一人で大抵のことはできますか? [プログラミング実習] Java言語、JSPサーブレット など Java言語によるネットワークプログラミング技術の習得 座学型訓練 Javaによるシステム開発、データベース設計補佐など ネットワーク技術について、ハード・ソフト両面において、技術・知識を身に付ける。ITを活用したビジネ スプロセスモデルに対して、最適なシステム構築を計画、実行することが出来る。 ・Javaを使用して、アプリケーションソフト・アプレット・サーブレットが作成出来ます。 ・Javaサーブレット・JSP・Beansを使った、Webサイトの作成・運用・管理が出来ます。 ・データーベースの作成及び運用・管理が出来ます。

    • ベストアンサー
    • Java
  • jspで関数部分だけ分離することができますか?

    jspで関数部分を分離できないでしょうか? 例えば <%! public int add(int a,int b){return a+b;} %> このadd関数だけ別のファイルにして呼び出せないでしょうか。 <jsp:include page="add.jsp" flush="true "/> とやってもadd関数がcannot resolve symbolとなってしまいます。 jspの方が手間的に楽なのですが やはりサーブレットにするしかないのでしょうか? linuxのtomcat4.1です。

    • ベストアンサー
    • Java
  • Eclipse jspにて スタックトレースの変換後ファイル(foo_jsp.java)へのリンクの設定方法

    Servlet変換後のJSPの場所をEclipseに設定する方法を探しています。 pleiades-all-in-one-java-jre_20090426 を使用して JSP を作っています。JSP実行時にエラーが発生すると、コンソールにスタックトレースが表示(※1)され、その中にServlet変換後のJSPへのリンクが表示されます。そのリンクをクリックすると、「org.apache.jsp.Foo_jspのソースが見つかりませんでした」というダイアログメッセージがでます。ソースの場所(※2)はわかっています。スタックトレース中のクリックでソースを開ける方法を教えてください。 ※1  java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList at org.apache.jsp.Foo_jsp._jspService(Foo_jsp.java:106) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) <省略> ※2 <ワークスペース>\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\<WEBアプリケーション>\org\apache\jsp\Foo_jsp.java

  • 困ってます

    自分は今TomcatでサーブレットとJSPの勉強をしています。 サーブレット(hello.class)はTomcat-conf-server.xmlに <Context path="/test"    docBase="webapps/test" crossContext="false" debug="0" reloadable="true" > </Context> を追加したことにより http://localhost:8080/test/servlet/hello で動作は確認しました("Helloworld"の表示のみ) JSP(hello.jsp)は Error: 500 Internal Servlet Error:が表示されて実行できません。 ちなみにhello.jspはtestディレクトリの直下に保存しています。 ・hello.jspのスクリプト <%@page contentType="text/html;" %> <html> <head> <title>JSPTEST</title> </head> <body> <% out.println("HELLO WORLD!"); %> </body> </html> ※ちなみにcontentType="text/html;charset=Shift_JIS"とすると  ページが見つからないというエラーになりました。 ・JSPファイルを表示するアドレス http://localhost:8080/test/hello.jsp 開発環境は RedHatLinux7.2 Java2 SDK 1.3.0 Jakarata Tomcat 3.2.4 で、 環境変数は JAVA_HOME=/usr/java/jdk1.3.0_02 TOMCAT_HOME=/usr/src/jakarta/tomcat PATH=$PATH:$JAVA_HOME/bin:$TOMCAT_HOME/lib/servlet.jar CLASSPATH=. です 何か分かる事がありましたらご教授御願い致します。

    • ベストアンサー
    • Java
  • 共有フォルダ リンク先が見つからない

    PC4台をLANでつないでおり、バックアップをA機の外付HDにとりたいのですが、A機外付HDの共有フォルダをB機のデスクトップにショートカットを作ることはできるのですが、B機からA機外付HDの共有フォルダに試しに空フォルダを入れてみると、リンク先が見つからないとエラーが出ます。 読み取り専用などのチェックは外してあります。 お詳しい方宜しくお願いします。

  • リンクできません。

    お世話になります。 よろしくお願いします。 少し前にも質問された内容ですが、ご回答を参考にして手直しし たつもりですが、やはりリンクできませんので質問させていただ きました。 具体的には以下のとおりです。  index.html  |   A-a.html    |    B-b.html ここでは、AとBがフォルダを意味しています。 いま、「b.html」から1階層上にある「a.html」にリンクしよう としています。 しかし、うまくいきません。 ソースを見ると、『href="../a.html"』となっています。 あってますよね? 不思議なことにビルダーのプレビューではリンクするですが、 Explorerではぜんぜん駄目なんです。 ちなみに、最上位フォルダのフォルダ名を変更したりHDD内を 移動したりしてしまいました。 それが関係しますでしょうか?でも、a.htmlからはindex.html にちゃんとリンクするのです。 さっぱりです。 よろしくお願いいたします。 ※htmlはあまり詳しくありません…(恥)。