0

私はUbuntu上でglassfishサーバーを使用してWebサービスを実行しています。問題は、共有リソース外のディレクトリにアクセスする必要があることです。現在、「Permission Denied」というエラーが表示されています。私はserver.policyにもパーミッションを設定しました。Java - glassfish - Webサービス - ローカルファイルへのアクセス

grant codeBase "/home/glassfish/glassfish/test/-" { 
    permission java.security.AllPermission; 
}; 

しかし、動作していないようです。 私は<property name="alternatedocroot_1" value="from=*.* dir=/home/glassfish/glassfish/test"/>を試しましたが、読書の許可のみを与えているようです。私も書き込み許可が必要です。だから私の質問はどのように私は書き込み許可を設定することができますか?

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

+2

glassfishユーザーがディレクトリに対して書き込み権限を持っていることを確認しましたか? – beerbajay

+0

はいglassfishユーザーはすべての権限を読み取り/書き込み/実行できます。 – Barun

+0

どのようにこれらのファイルにアクセスしていますか? Java File APIまたはリソースとしてロードする – NBW

答えて

0

これはJavaSecurityの問題ではないため、この点については何も調整する必要はありません。

FWIWFWIWは、さまざまなWindowsのGFに配備されたWebアプリケーションを、File APIを使用して 'Application'ディレクトリの外にあるディレクトリに書き込みます。 alternatedocrootは、DefaultServletを使用して、アプリケーションデプロイメントディレクトリの外部には書き込めない静的コンテンツを提供するGFに関係します。

サービスとして実行すると、 '実行者'ユーザーがターゲットディレクトリに書き込むための適切な権限を持っていることに注意する必要があります。Unixでは、rc(init.d) )asadmin.shを実行するスクリプトには、ターゲットディレクトリへの読み書き権限があります。

私は、JavaプロセスGFが実行されていることをユーザーに確認し、書き込みしようとしているディレクトリに対してrwx権限を持っています。ユーザーがターゲットフォルダに書き込むことができることを確認します。これをテストするには、ユーザーにsuをして、 'touch'コマンドを使用します:touch/tmp/testを実行し、そのように書き込み許可を確認します。同様に 'ls -l/tmp/test'を実行して読み取り権限があることを確認してください。

「ps -ef | grep java 'は、GF javaプロセスを実行しているユーザーを確認します。さらに、あなたのコードでは、テストファイルへのフルパスを指定してみてください。ファイルテスト=新しいファイル( "/ tmp/test");

rcスクリプトからGFを実行しているのですか、またはシェルプロンプトからasadmin.shを使用してGFを起動していますか? rcスクリプトを実行している場合、rcスクリプトが本当にそれを期待するユーザーとして実行していることを確認してください。

関連する問題