2015-01-21 7 views
1

Переход от Jetty 6 до 9 было намного сложнее, чем я думал, но у меня много этого сделано благодаря ресурсам вы все онлайнJetty 6 до Jetty 9 Контекст Deployer миграции

Я сомневаюсь, что Я не нашел примеров XML в Интернете по поводу встроенных сервлетов в Jetty 9 отличных ссылку ниже

http://jetty.4.x6.nabble.com/Jetty-9-Context-Deployer-td4960157.html

во-первых, мне кажется, что вы все мигрировали из ContextDeployer в WebAppProvider это правильное утверждение?

Я спрашиваю об этом, потому что в Jetty6 я смог использовать развертыватель контекста для поиска в каталоге для настройки сервлетов в качестве объектов контекста. Поскольку ContextDeployers, похоже, ушли, самое близкое использование в Jetty, которое я вижу, это WebAppProvider, который открывает веб-страницы из военного файла. Это не то, что моя компания хочет сделать, и мы хотели бы иметь возможность использовать контексты так же, как мы делали в прошлом.

Теперь я видел ServletContextHandler, который кажется достаточно простым для настройки и будет действовать как объект контекста. Тем не менее, мой текущий веб-конфигурации провайдера приложение не будет открывать мой сервлет веб-страницы

Вот отрывок о том, как я использую DeployManager в XML

<Call name="addBean"> 
<Arg> 
    <New id="DeploymentManager" class="org.eclipse.jetty.deploy.DeploymentManager"> 
    <Set name="contexts"> 
     <Ref refid="Contexts" /> 
    </Set> 

    <Call id="webappprovider" name="addAppProvider"> 
     <Arg> 
     <New class="org.eclipse.jetty.deploy.providers.WebAppProvider"> 
      <Set name="monitoredDirName"><Property name="jetty.home" default="config/jetty/context/"/></Set> 
      <Set name="scanInterval">5</Set> 
     </New> 
     </Arg> 
    </Call> 
    </New> 
</Arg> 

Пример Servlet конфигурации XML

<Configure id="contexts" class="org.eclipse.jetty.servlet.ServletContextHandler"> 
    <Set name="contextPath">/</Set> 
    <Call name="addServlet"> 
    <Arg>class.name.here</Arg> 
    <Arg>/*</Arg> 
    </Call> 
</Configure> 
+0

Куда будут загружены классы сервлетов? Являются ли они контекстуальными? или на сервере? (Нет никакого намека на то, как вы это сделали в Jetty 6, так как у него также были бы проблемы с загрузкой классов) –

+0

Вы упомянули встроенные сервлеты в вопросе и отметили встроенный причал, но ваш вопрос кажется с точки зрения распределения причала и xml-конфигурацию. какую форму вы используете? –

+0

Последний, я использую xml-конфигурацию, и я не думаю, что я могу отклониться от нее. Извините за путаницу. Мои знания о причалах растут, но все еще довольно ограничены. – user1013905

ответ

1

Вы можете использовать WebAppProvider точно так же, как ранее использовался ContextDeployer. В частности, если вы поместите файл context.xml в каталог webapp, он будет горячим, как и в ContextDeployer.

Что касается типа контекста, который вы хотите развернуть, ей будет просто ContextHandler, ServletContextHandler, WebAppContext или что-нибудь еще, что расширяет ContextHandler

Посмотрите в каталоге демо-база/WebApps для некоторых примеров ,

В вашем примере я предполагаю, что проблема id = "contexts" может быть проблемой. Попробуйте удалить его, так как вам не нужен идентификатор. Кроме этого, похоже, что он должен работать, поэтому вы на правильном пути.

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