2010-09-15 23 views
7

Jetty'yi yapılandıran ve çalıştıran bir ana sınıfa sahibim. (Yani bir webapp test etmek için Wicket gelen standart bir uygulama, ama gerçekten değil küçük kapı özgü bu.)Jetty'ye kaynakları programlı olarak ekleyin

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(); 

Gördüğünüz gibi, src/main/Webapp webapp kök olarak kullanılır. Ancak, hedef/sınıflardaki ve daha sonra web sunucusuna kopyalanan bazı kaynaklara sahibim. Bu yüzden sanal dizinleri iskeleye eklemek istiyorum.

Kimsenin yardım edebilir target/classes/js/js ve target/classes/css

/css için eşleştirmek istiyorum?

BTW:

Bütünlüğü için
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(); 

cevap

8

her sanal dizin için bir WebAppContext ekle dalgakıran 6.1.4 var Çok zarif değil, her şeyi hedef/sınıflara yerleştirir ve webapp'ı sadece geri dönüş olarak kullanır.

+0

Bir çekicilik gibi çalışır, teşekkürler. –

+0

Neden her ikisi de WebAppContext.setServer (Server) 've' Server.addHandler (WebAppContext) 'gereklidir? – NSPKUWCExi2pr8wVoGNk

3

, burada ben kullanıyorum geçici çözüm var:

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(); 

Ama sanki o

İlgili konular