встраивание проблем сервера Jetty - PullRequest
2 голосов
/ 05 сентября 2011

У меня возникают трудности при встраивании сервера Jetty в приложение Java.Я использую Spring для конфигурирования реальных объектов, и я могу создать веб-приложение без проблем - но я получаю эту проблему при запуске сервера ...

0 [main] INFO test.Server  - Starting server in 'c:/workspace/test/war/' on port 9090
34615 [main] INFO test.Server  - Using resource base: src/main/webapp
34615 [main] INFO test.Server  - Using descriptor file: src/main/webapp/WEB-INF/web.xml
2011-09-05 12:29:36.961:INFO::Logging to STDERR via org.mortbay.log.StdErrLog
36344 [main] INFO test.Server  - Starting Server!
2011-09-05 12:29:37.023:INFO::jetty-6.1H.22
2011-09-05 12:29:37.039:WARN::Failed startup of context org.mortbay.jetty.webapp.WebAppContext@8ab708{/TestServer,file:/C:/workspace/test/war/src/main/webapp/}
java.lang.ClassNotFoundException: org.mortbay.jetty.plus.webapp.EnvConfiguration
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at org.mortbay.util.Loader.loadClass(Loader.java:91)
    at org.mortbay.util.Loader.loadClass(Loader.java:71)
    at org.mortbay.jetty.webapp.WebAppContext.loadConfigurations(WebAppContext.java:859)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:431)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:224)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at test.Server.main(Server.java:84)
2011-09-05 12:29:37.054:INFO::Started SocketConnector@0.0.0.0:9090

Проблема, кажется, с некоторыми из моего путивещи ... структура dir проста (что рекомендует maven) -

рабочая область / test / war / -src / main / java / test / Server.java -src / main / webapp / WEB-INF / web.xml

Кроме этого, он попадает в подпружиненный материал, который я настроил в файле web.xml, который был проверен и верен (через tomcat).

Соответствующий код в main таков (иначе это свойства дерьма):

svrLogger.info ("Starting server in '" + home + "' on port " + port);

String rsrcBase = "src/main/webapp";
String webXml = rsrcBase + "/WEB-INF/web.xml";

svrLogger.info ("Using resource base: " + rsrcBase);
svrLogger.info ("Using descriptor file: " + webXml);

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

webapp.setContextPath ("/TestServer");
webapp.setDescriptor (home + "/" + webXml);
webapp.setResourceBase (home + "/" + rsrcBase);
webapp.setParentLoaderPriority (true);
server.setHandler(webapp);

svrLogger.info ("Starting Server!");
server.start();
server.join();
svrLogger.info ("Joined and exiting");

Любая помощь хороша ... полезна.Это первый раз, когда я пытался создать свой собственный веб-сервер (поэтому приветствуются и другие советы!)

1 Ответ

2 голосов
/ 14 апреля 2015

Попробуйте включить

<dependency>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-jndi</artifactId>
    <version>${jetty.version}</version>
</dependency>

Он пытается загрузить этот класс, потому что в Jetty JNDI не настроен по умолчанию.

Это хороший ресурс, чтобы узнать больше о Jetty

https://jersey.java.net/documentation/latest/index.html

Удачи!

...