質問

OKこれは次のようなものに関連しています:プログラムでサーブレットテストをインストールして実行する

そこで素晴らしい回答が得られ、サーブレットをプログラムでロードすることができ、すべてがすばらしいものになりました。

しかし、私がやりたいのは、テストでweb.xmlをロードし(すべてクラスパスで)、サーバーで実行する(現在のクラスパスを使用)ことです。それを行うディレクトリですが、クラスパスを回避したいです(インプレーステストの方が良い)。基本的に私のweb.xmlの検証。

(関連性はありませんが、このアプリはscalaにありますが、私はそれで問題はありませんでした。すべては宣伝どおりに動作します。)

役に立ちましたか?

解決

やりたいことは、個々のサーブレットをロードするのではなく、適切なWebアプリケーションをプログラムでロードすることです(そして、完全なWARファイルがなくても実行したいと思います)。

Server server = new Server( port );
WebAppContext root = new WebAppContext();

root.setWar("/path/to/somewhere");
root.setContextPath("/");

server.addHandler( root );
server.start();

トリックは、 / path / to / somewhere WEB-INF ディレクトリが含まれ、 web.xml ファイルが存在することです。そこに。クラスパスから他のすべてを自動的にロードできるため、そのディレクトリ構造内に他に何も存在する必要はありません(必要に応じて、実際のWARファイルまたは完全な展開されたWARツリーへのパスを作成できます)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top