2014-10-07 2 views
0

Я попробую запустить Jersey + Jetty + Nginx через this tutorial, и я не могу использовать файл войны. Как я могу запустить приложение java?Запустите приложение Java с причалом без файла WAR

Я запускаю приложение, щелкнув правой кнопкой мыши на BackendServer.java и нажав «Запустить» в IDEA или используя в терминале java -cp /home/example/backend/build/WEB-INF/lib/backend.jar:/home/example/backend/libs/* com.example.backend.BackendServer.

Структура проекта описана here.

/opt/jetty/webapps/backend.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE Configure PUBLIC 
    "-//Mort Bay Consulting//DTD Configure//EN" 
    "http://www.eclipse.org/jetty/configure_9_0.dtd"> 

<!-- 
    Configure a custom context for serving javadoc as static resources 
--> 

<Configure class="org.eclipse.jetty.server.handler.ContextHandler"> 
    <Set name="contextPath">/</Set> 
    <Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>??????????</Set> 
    <Set name="handler"> 
    <New class="org.eclipse.jetty.server.handler.ResourceHandler"> 
     <Set name="welcomeFiles"> 
     <Array type="String"> 
      <Item>index.html</Item> 
     </Array> 
     </Set> 
     <Set name="cacheControl">max-age=3600,public</Set> 
    </New> 
    </Set> 
</Configure> 

Что должно быть вместо ???????? Должен ли я использовать встроенный причал в BackendServer.java? Я знаю, что у меня есть перенаправления запросов от nginx на причал, но я не понимаю, как я могу начать применение джерси с помощью пирса ...

ответ

0

Связанный пример/учебник и связанный ранее вопрос несовместимы.

Учебное пособие предназначено для Jetty 6 (теперь невозможно устаревшего) и полностью использует встроенную пристань, с развертыванием и всем включенным.

Ваш предыдущий вопрос устанавливает com.sun.net.httpserver.HttpServer, что не то же самое.

resourceBase является корневым каталогом для любого содержимого веб-сайта, которое вы можете использовать.

Поскольку вы используете простой ContextHandler, тогда это должно указывать на каталог на вашем диске.

Если вы использовали WebAppContext, то, что должно указывать на ваш веб-приложение базового каталога (где дополнительные файлы, такие как WEB-INF/web.xml или WEB-INF/classes бы)

ResourceHandler вы определили должны использовать ContextHandler.resourceBase.

Помните, что ResourceHandler предназначен для наиболее простого, простого упрощенного статического файлового обслуживания. Если у вас есть какие-либо требования от ваших веб-клиентов для выполнения кэшированных запросов, возобновите загрузку, частичную загрузку или элементы управления типом mime, а затем используйте DefaultServlet.

Кроме того, если все, что вы хотите, это файловый сервер в встроенном причале, почему вы используете развертывание XML с базовым ContextHandler? Это было бы намного проще написать в ваш встроенный сервис причала.

Некоторые встроенные молы пример кода, который может оказаться полезным для вас:

Смежные вопросы