2017-11-10 2 views
0

にデプロイした後、私は私のアプリのルートフォルダにあるJSONファイルをロードする問題を持っているdirectory.So私は、単純なのJava:私は、アプリケーションを実行する際にFileNotFoundサーバー

 File file = new File("assetlinks.json"); 

をしました私のローカルサーバー上では、ファイルは正しく に配信されますが、私がオンラインでプッシュするとファイルが見つかりません。 FileNotFoundExceptionがスローされます。

私はここで何が欠けていますか?

+0

適切なファイルパスを指定してください –

+0

ファイルが私のアプリケーションのルートフォルダにあるので、完全なファイルパスは必要ないと仮定します。それはローカルで動作します。 – Ogbe

+0

絶対パスを提供する –

答えて

1

現在の作業ディレクトリをログインした後、私はアプリがコンテナ内に束ねられ、リソースを取得するためである、それは空の文字列を返したことを発見しましたこれらのリソースは、明示的に私は

File file = new File("assetlinks.json"); 
を使用してファイルを取得することができたことをやった後はそう簡単にドッキングウィンドウにリソースを追加すると、問題に

ADD assetlinks.json assetlinks.json 

を解決し、ドッキングウィンドウのファイルに追加する必要があります

1

それはWebアプリケーションのルートである場合は、以下のものが必要です

File file = new File(servletRequest 
     .getServletContext().getRealPath("/assetlinks.json")); 

これは、ファイル・システム・ファイルへのWebアプリケーションのルートからの相対パス(/)のようなURLになります。

(ところで、サブディレクトリは良いアイデアかもしれません。)

+0

大変ありがとうございますが、サーブレットを使用していません.APIリソースからファイルを返しています。 – Ogbe

+0

'System.getProperty(" user.dir ")'を知っているか、単に 'file.getAbsolutePath()'をログアウトしています。 。たぶん権利が失われています。 –

+0

私はSystem.getProperty( "user.dir")を使用して現在の作業ディレクトリを取得しようとしましたが、システム上の正しいディレクトリとサーバー上の空の文字列を返します。これは、サーバがKubernetesのコンテナに包まれているためでしょうか? – Ogbe

関連する問題