7

Jetty を構成して起動するメイン クラスがあります。(これは、Web アプリケーションをテストするための Wicket の標準的な方法ですが、実際には wicket 固有のものではありません。)

final Server server = new Server();
//skipped socketconnector initialization

final WebAppContext bb = new WebAppContext();
bb.setServer(server);
bb.setContextPath("/");
bb.setWar("src/main/webapp");
server.addHandler(bb);
server.start();

ご覧のとおり、src/main/webapp が webapp ルートとして使用されます。ただし、ターゲット/クラスにあり、後で webapp にコピーされるリソースがいくつかあります。そこで、jetty に仮想ディレクトリを追加したいと思います。

とにマッピングtarget/classes/jsしたい/jstarget/classes/css/css

誰でも助けることができますか?

ところで:桟橋6.1.4です

4

2 に答える 2

8

WebAppContext仮想ディレクトリごとにを追加します。

final Server server = new Server();
//skipped socketconnector initialization

final WebAppContext js = new WebAppContext();
js.setServer(server);
js.setContextPath("/js");
js.setWar("target/classes/js"); // or whatever the correct path is in your case
server.addHandler(js);

// css the same way

final WebAppContext bb = new WebAppContext();
bb.setServer(server);
bb.setContextPath("/");
bb.setWar("src/main/webapp");
server.addHandler(bb);

server.start();
于 2010-09-15T19:44:41.283 に答える
4

完全を期すために、私が使用している回避策は次のとおりです。

final Server server = new Server();
//skipped socketconnector initialization

final WebAppContext bb = new WebAppContext();
bb.setServer(server);
bb.setContextPath("/");
bb.setWar("src/main/webapp");
final URL url = new File("target/classes").getAbsoluteFile().toURI().toURL();
final Resource resource = new FileResource(url);
final ResourceHandler handler = new ResourceHandler();
handler.setBaseResource(resource);
server.addHandler(handler);
server.addHandler(bb);
server.start();

しかし、それはあまりエレガントではありません。すべてをターゲット/クラスにマウントし、webapp をフォールバックとしてのみ使用します。

于 2010-09-16T10:45:49.723 に答える