新しいコンテキストを追加して、外部フォルダーにアクセスするためのパスを指定できます。
Jboss 4 以前のバージョンの手順:
- ファイルを開きます
/YOURINSTANCE_JBOSS/deploy/jboss-web.deployer/server.xml
。
Context
タグに新しいを定義する<Host name=”localhost” ...>
例:
<Host name=”localhost” ...>
<Context path=”/myfolder” docBase=”/home/username/my_images” reloadable=”true”></Context>
/myfolderはファイルへのアクセスに使用するパス、/home/username/my_imagesは写真をアップロードするフォルダーです。
JBoss を再起動します
これで、次のパスでファイルにアクセスできるようになります。
http://yourserver:yourport/myfolder/filename
Jboss 5 の手順:
次の内容でフォルダーに名前context.xml
を付けた新しいファイルを作成します。WEB-INF
<?xml version="1.0" encoding="UTF-8"?>
<Context allowLinking="true" cookies="true" crossContext="true" override="true">
<Resources allowLinking="true" className="YOUR_PACKAGE.MyResources" homeDir="/home/username/my_images" />
</Context>
ここで、 classNameはリソースにアクセスする Java クラスであり、homeDirは外部ディレクトリです。
このリンクに従って、ファイルで定義されたリソースにアクセスするための新しいクラスを作成しますcontext.xml
例:
public class MyResources extends FileDirContext {
}
これで、次の関数でファイルにアクセスできるようになります:
request.getServletContext().getResourceAsStream(uri);
Jboss 5 以前のバージョンの手順:
という名前の新しいファイルcontext.xml
を、次の内容で WEB-INF フォルダーに作成します。
<?xml version="1.0" encoding="UTF-8"?>
<Context allowLinking="true" cookies="true" crossContext="true" override="true">
<Resources allowLinking="true" homeDir="/home/username/my_images" />
</Context>
homeDirは外部ディレクトリです。
シンボリック リンクを作成する:YourDeployedProject.war/myfolder
リンク先/home/username/my_images
ウィンドウズ:
mklink /D C:\YOUR_JBOSS_SERVER\server\default\deploy\YourDeployedProject.war\myfolder C:\users\YOURUSER\my_images
Linux:
YourDeployedProject.war# ln -s /home/username/my_images myfolder
これで、次のパスでファイルにアクセスできるようになります。
http://localhost:8080/DeployedProject/myfolder/filename
Jboss 7 の手順:
JBoss 7 では、以前の JBoss バージョンのメソッドを使用できないため、最も簡単な解決策は、次のリンクのようにファイルにアクセスするためのサーブレットを実装することです。