2013-08-28 5 views
0

Попробуйте интегрировать cometd (spring-jquery-jetty7) с проектом MVC весной appfuse.cometd spring Метод запроса «POST» не поддерживается для/cometd/handshake

мой web.xml является

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>2</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/app/*</url-pattern> 
</servlet-mapping> 

<servlet> 
    <servlet-name>cometd</servlet-name> 
    <servlet-class>org.cometd.server.CometdServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>cometd</servlet-name> 
    <url-pattern>/cometd/*</url-pattern> 
</servlet-mapping> 

и сделал все другие конфигурации, как весна-JQuery-jetty7 Например, когда я пытаюсь cometd.handshake() из скрипта, это не удалось, и получил ошибку из журнала, как следует

WARN [http-8080-6] PageNotFound.handleHttpRequestMethodNotSupported (183) | Метод запроса «POST» не поддерживается 115117 [http-8080-6] WARN org.springframework.web.servlet.PageNotFound - метод запроса POST 'не поддерживается

Никто не испытывает это? надеюсь, что сервлет диспетчера обработает запрос вместо сервлета cometd, я не знаю, что в этом плохого, предложение об этом приветствуется. спасибо

+0

Я не вижу порядок запуска на сервлете cometd. Я бы подумал, что сначала его нужно будет загрузить, а затем - весной. Кроме того, из сообщения об ошибке появляется как URL-адрес недействителен ... какой полный URL-адрес он использует для публикации? Я ожидаю, что это начнется с '/ cometd /' из вашего опубликованного web.xml. – CodeChimp

+0

Hi @CodeChimp Спасибо за ваш ответ, я разрешаю проблему, изменяя заказы сервлета, такие как servetd servlet, и второй сервлет сервлетов. Спасибо – mathi

ответ

0

Я решаю проблему, изменяя заказы сервлета, такие как servetd servlet first и servletd servlet second. Диспетчер сервлет обрабатывать запрос cometd первым и бросить ошибку всегда так я изменить порядок, как следует

<servlet> 
    <servlet-name>cometd</servlet-name> 
    <servlet-class>org.cometd.server.CometdServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>cometd</servlet-name> 
    <url-pattern>/cometd/*</url-pattern> 
</servlet-mapping> 

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>2</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/app/*</url-pattern> 
</servlet-mapping> 

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