Intereting Posts
как отправлять значения из PHP в jQuery: echo или return? Как обрабатывать покупку для 2checkout с завитком Назначить по ссылке ошибка Файлы, не загружаемые в динамически создаваемые папки / подпапки Пустые значения, переданные в валидаторы Zend Framework 2 Неустранимая ошибка: require_once () : Не удалось открыть окно '__DIR__ Как осуществить проверку наличия в системе бронирования отелей Отправка писем BCC с использованием SMTP-сервера? Как запомнить опубликованные поля в формах для выпадающих элементов? Как проверить, содержит ли массив определенное значение в php? как получить идентификатор видео из iframe из youtube в php или cakephp Есть ли способ переписать LESS-переменную с помощью компилятора LESS в PHP? Рекомендации по доступу к зарегистрированному объекту пользователя из других классов Невозможно передать значение параметра в репозиторий findOneBy Symfony PHP-версии / CSS-атаки IE9 элемента select

HTTP-сообщение из ActiveMQ с помощью Camel

Мы используем маршруты верблюдов для отправки значений из очереди в конечную точку http.

Я успешно настроил маршрут, используя http-компонент верблюда, но я не могу получить сообщение о сообщении jms.

Например, мой маршрут настроен следующим образом:

<route errorHandlerRef="dlc" autoStartup="true" id="route2" xmlns:ns2="http://camel.apache.org/schema/web" xmlns="http://camel.apache.org/schema/spring"> <from uri="activemq:test"/> <setHeader headerName="CamelHttpMethod"> <constant>POST</constant> </setHeader> <to uri="http://localhost/tim/camel/" id="to2"/> </route> 

Это приводит к POST, но тело сообщения не отображается в моей строке POST (как print_r'd из $ _SERVER):

 Array ( [instance] => local [HTTP_JMSDELIVERYMODE] => 1 [HTTP_JMSDESTINATION] => queue://test [HTTP_JMSEXPIRATION] => 0 [HTTP_JMSTYPE] => [HTTP_JMSTIMESTAMP] => 1291468702773 [HTTP_JMSPRIORITY] => 0 [HTTP_JMSCORRELATIONID] => [HTTP_JMSMESSAGEID] => ID:new-host-3.home-62248-1291465669089-4:3:1:1:4 [HTTP_JMSREDELIVERED] => false [HTTP_USER_AGENT] => Jakarta Commons-HttpClient/3.1 [HTTP_HOST] => localhost [HTTP_COOKIE] => $Version=0; PHPSESSID=32aa692c71e1003f2e540c1b80c3b363; $Path=/ [CONTENT_LENGTH] => 44 [CONTENT_TYPE] => text/html [PATH] => /usr/bin:/bin:/usr/sbin:/sbin [SERVER_SIGNATURE] => <address>Apache/2.0.59 (Unix) PHP/5.2.6 DAV/2 mod_ssl/2.0.59 OpenSSL/0.9.7l Server at localhost Port 80</address> [SERVER_SOFTWARE] => Apache/2.0.59 (Unix) PHP/5.2.6 DAV/2 mod_ssl/2.0.59 OpenSSL/0.9.7l [SERVER_NAME] => localhost [SERVER_ADDR] => 127.0.0.1 [SERVER_PORT] => 80 [REMOTE_ADDR] => 127.0.0.1 [DOCUMENT_ROOT] => /wufoo/trunk/ [SERVER_ADMIN] => you@example.com [SCRIPT_FILENAME] => /wufoo/trunk/tim/camel/index.php [REMOTE_PORT] => 62877 [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => POST [QUERY_STRING] => [REQUEST_URI] => /tim/camel/ [SCRIPT_NAME] => /tim/camel/index.php [PHP_SELF] => /tim/camel/index.php [REQUEST_TIME] => 1291468702 [argv] => Array ( ) [argc] => 0 ) 

Обратите внимание, что REQUEST_METHOD – POST, но argv не содержит тело сообщения.

Короче говоря, мне нужно передать тело сообщения с маршрута «от» на «до», чтобы его можно было отправить как POST, но я как-то не сработал.

Заранее спасибо.

Solutions Collecting From Web of "HTTP-сообщение из ActiveMQ с помощью Camel"

Я нашел ответ. Чтобы исправить это, мне пришлось добавить узел Content Type в заголовок и установить тело в пару имя / значение, как показано ниже:

 <route errorHandlerRef="dlc" autoStartup="true" inheritErrorHandler="true" id="route2" xmlns:ns2="http://camel.apache.org/schema/web" xmlns="http://camel.apache.org/schema/spring"> <from uri="activemq:test"/> <setBody inheritErrorHandler="true" id="setBody2"> <simple>name=${body}</simple> </setBody> <setHeader headerName="Content-Type" inheritErrorHandler="true" id="setHeader3"> <constant>application/x-www-form-urlencoded;</constant> </setHeader> <setHeader headerName="CamelHttpMethod" inheritErrorHandler="true" id="setHeader4"> <constant>POST</constant> </setHeader> <to uri="http://localhost/tim/camel/" inheritErrorHandler="true" id="to2"/> </route>