Я использую встроенный причал для своих проектов Wicket без проблем, так как wicket не использует JSP.Пока я не столкнулся с задачей создания базового динамического веб-приложения с использованием встроенного сервера приложений Jetty.
Я знаю, что по умолчанию Jetty не поддерживает JSP.Я также знаю, что есть несколько других контейнеров сервлетов на выбор.Но для этой задачи я хотел бы показать, насколько мощная и простая веб-разработка использует Jetty, поскольку я с большим успехом использую ее для крупных проектов.
Я использую Eclipse Helios в качестве своей IDE и добавилследующие файлы в мой classpath
- junit-4.8.1.jar
- jetty-6.1.25.jar
- jetty-management-6.1.25.jar
- jetty-util-6.1.25.jar
- log4j-1.2.14.jar
- servlet-api-2.5-6.1.4.jar
- jsp-2.1-6.1.5.jar
- javax.servlet.jar
- вот код, который я использую для запуска моего врезанного причала
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.bio.SocketConnector;
import org.mortbay.jetty.webapp.WebAppContext;
public class Start {
public static void main(String[] args) throws Exception {
Server server = new Server();
SocketConnector connector = new SocketConnector();
// Set some timeout options to make debugging easier.
connector.setMaxIdleTime(1000 * 60 * 60);
connector.setSoLingerTime(-1);
connector.setPort(8080);
server.setConnectors(new Connector[] { connector });
WebAppContext bb = new WebAppContext();
bb.setServer(server);
bb.setContextPath("/");
bb.setWar("WebContent");
server.addHandler(bb);
try {
System.out.println(">>> STARTING EMBEDDED JETTY SERVER, PRESS ANY KEY TO STOP");
server.start();
System.in.read();
System.out.println(">>> STOPPING EMBEDDED JETTY SERVER");
// while (System.in.available() == 0) {
// Thread.sleep(5000);
// }
server.stop();
server.join();
} catch (Exception e) {
e.printStackTrace();
System.exit(100);
}
}
}
И ниже сообщение об ошибке
2011-02-11 09: 18: 12.953: INFO :: Вход в STDERR через org.mortbay.log.StdErLL ЗАПУСК ВСТРОЕННОГО СЕРВЕРА JETTY, НАЖМИТЕ ЛЮБОЙ КЛЮЧ, ЧТОБЫ ОСТАНОВИТЬ2011-02-11 09: 18: 13.000: ИНФОРМАЦИЯ :: jetty-6.1.25 2011-02-11 09: 18: 13.156: ПРЕДУПРЕЖДЕНИЕ :: ошибка jsp: java.lang.NoClassDefFoundError: javax / servlet / jsp / JspApplicationContext 2011-02-11 09: 18: 13.171: WARN :: fail org.mortbay.jetty.webapp.WebAppContext@76cbf7 {/, WebContent}: java.lang.NoClassDefFoundError: javax / servlet / jsp / JspApplicationContext 2011-02-11 09: 18: 13.171: WARN :: Ошибка запуска обработчиков java.lang.NoClassDefFoundErlet jrror:/ jsp / JspApplicationContext в org.apache.jasper.compiler.JspRuntimeContext. (JspRuntimeContext.java:103) в org.apache.jasper.servlet.JspServlet.init (JspServlet.java:134) на org.mortty.let.ServletHolder.initServlet (ServletHolder.java:440) по адресу org.mortbay.jetty.servlet.ServletHolder.doStart (ServletHolder.java:263) по адресу org.mortbay.component.AbstractLifeCycle.start (AbstractLava.50) или orb.mj..jetty.servlet.ServletHandler.initialize (ServletHandler.java:685) в org.mortbay.jetty.servlet.Context.startContext (Context.java:140) в org.mortbay.jetty.webapp.WebAppContext.stavaContext: 1272) в org.mortbay.jetty.handler.ContextHandler.doStart (ContextHandler.java:517) в org.mortbay.jetty.webapp.WebAppContext.doStart (WebAppContext.java:489) в org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50) в org.mortbay.jetty.handler.HandlerWrapper.doStart (HandlerWrapper.java:130) в org.mortbay.jetty.Server.doStart (Server.java:2)на org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50) на com.pldt.embededserver.Start.main (Start.java:36) 2011-02-11 09: 18: 13.203: INFO :: Запущен SocketConnector@ 0.0.0.0: 8080
Надеюсь, вы, ребята, поможете мне с этим.Я чувствую себя настолько разочарованным (с учетом документации Jetty по этому поводу), что такая простая задача, как эта, оказывается очень запутанной и отнимает много времени из-за плохой документации, что даже самая простая из всех задач (как запустить веб-приложение с JSP)было бы очень тяжело, особенно для людей, которые хотят изучать Java и считают причал своим контейнером для сервлетов.
Заранее спасибо.