تحميل حتى web.xml لاختبارات التكامل مع رصيف
سؤال
وOK هذا النوع من المتعلقة بما يلي: عن طريق رصيف ل التركيب واختبارات تشغيل بريمج برمجيا
وحصلت على إجابات كبيرة هناك، وتمكنت من تحميل ما يصل السيرفلتس برمجيا والتي جعلت كل من رائع.
ما أود القيام به ولكن يتم تحميل حتى web.xml في اختبار (كل في classpath)، وأنها سبقت الخادم (باستخدام CLASSPATH الحالي) - لقد رأيت في مستندات كيف أن نشير إلى دليل للقيام بذلك، ولكن أريد أن أعمل خارج CLASSPATH (أفضل لفي مكان الاختبار). التحقق من صحة أساسا بلدي web.xml.
و(ليست ذات صلة، ولكن هذا التطبيق هو في سكالا، ولكن لم يكن لدي أي مشكلة مع ذلك، كل شيء يعمل كما هو معلن).
المحلول
وهذا يبدو وكأنه ما تريد القيام به هو تحميل تطبيق ويب السليم برمجيا، بدلا من السيرفلتس فرد تحميل (وأعتقد أنك تريد أن تفعل ذلك دون وجود ملف 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
من الداخل هناك. أي شيء آخر يحتاج إلى العيش داخل هذا الهيكل الدليل، ككل شيء آخر يمكن تحميلها تلقائيا من CLASSPATH الخاص بك (على الرغم إذا أردت، يمكنك أن تجعل هذا المسار إلى ملف WAR الفعلي أو كاملة انفجرت شجرة WAR).