что не так с классом Джерси ниже потока мула?

В следующем потоке мулов я реализовал класс Jersey для веб-службы REST с конечными точками виртуальной машины.

<flow name="APIKeyLoadFlow" doc:name="APIKeyLoadFlow"
        initialState="started">
        <http:inbound-endpoint exchange-pattern="request-response"
            address="${api.load.invoke.url}" doc:name="HTTP"
            responseTimeout="${apikey.http.responsetimeout}" />
        <logger message="Start Of APIKeyLoadFlow -#[payload]" level="INFO"
            doc:name="ENTRY_LOG" />

        <request-reply timeout="300000" >
            <vm:outbound-endpoint connector-ref="VM_Connector"
                exchange-pattern="one-way" path="APIKeyLoadRequest">
            </vm:outbound-endpoint>
            <vm:inbound-endpoint connector-ref="VM_Connector"
                exchange-pattern="one-way" path="APIKeyLoadResponse">
            </vm:inbound-endpoint>
        </request-reply>
        <logger message="End of APIKeyLoadFlow" level="INFO" doc:name="EXIT_LOG" />
        <catch-exception-strategy doc:name="Catch Exception Strategy">
            <logger level="WARN" doc:name="Exception_Log"
                message="Exception in ApiKeyFlow #[System.getProperty('line.separator')] Error Description = #[exception.getMessage()]" />
        </catch-exception-strategy>
    </flow>
    <flow name="ApiKeyLoadRestServiceFlow" doc:name="ApiKeyLoadRestServiceFlow">
        <vm:inbound-endpoint exchange-pattern="one-way"
            path="APIKeyLoadRequest" doc:name="APIKey_Load_Request">
        </vm:inbound-endpoint>
        <logger message="Start of ApiKeyLoadRestServiceFlow -#[payload]" level="INFO"
            doc:name="ENTRY_LOG" />
        <jersey:resources doc:name="REST">
            <component class="com.elexon.bmrs.apikey.service.impl.ApiKeyLoadImpl" />
        </jersey:resources>
        <logger message="End of ApiKeyLoadRestServiceFlow" level="INFO"
            doc:name="EXIT_LOG" />
        <vm:outbound-endpoint exchange-pattern="one-way"
            path="APIKeyLoadResponse" doc:name="APIKey_Load_Response">
        </vm:outbound-endpoint>

Но я получаю исключение ниже при выполнении запроса? Пожалуйста, позвольте мне, в чем проблема в реализованном потоке?

INFO 08.12.2015, 13:09:59,792 [[apikey_load_phase3].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: Start Of APIKeyLoadFlow -org.apache.commons.httpclient. ContentLengthInputStream@1517f14 INFO 2015-12-08 13:09:59,813 [[apikey_load_phase3].connector.http.mule.default.receiver.02] org.mule.lifecycle.AbstractLifecycleManager: Инициализация: «VM_Connector.dispatcher.25489136». Объект: VMMessageDispatcher INFO 2015-12-08 13:09:59,813 [[apikey_load_phase3].connector.http.mule.default.receiver.02] org.mule.lifecycle.AbstractLifecycleManager: Starting: 'VM_Connector.dispatcher.25489136'. Объект: VMMessageDispatcher INFO 2015-12-08 13:09:59,830 [[apikey_load_phase3].ApiKeyLoadRestServiceFlow.stage1.02] org.mule.api.processor.LoggerMessageProcessor: Start of ApiKeyLoadRestServiceFlow -org.apache.commons.httpclient.ContentLengthInputStream@ 1517f14 ОШИБКА 2015-12-08 13:09:59,833 [[apikey_load_phase3].ApiKeyLoadRestServiceFlow.stage1.02] org.mule.exception.DefaultMessagingExceptionStrategy:


Сообщение: Не удалось вызвать JerseyResourcesComponent{ApiKeyLoadRestServiceFlow.component.14630019}. Компонент, вызвавший исключение: JerseyResourcesComponent{ApiKeyLoadRestServiceFlow.component.14630019}. Полезная нагрузка сообщения имеет тип: ContentLengthInputStream.

Код : MULE_ERROR--2

Стек исключений: 1. null (java.lang.NullPointerException) org.mule.module.jersey.JerseyResourcesComponent:116 (null) 2. Не удалось вызвать JerseyResourcesComponent{ApiKeyLoadRestServiceFlow.component.14630019}. Компонент, вызвавший исключение: JerseyResourcesComponent{ApiKeyLoadRestServiceFlow.component.14630019}. Полезная нагрузка сообщения имеет тип: ContentLengthInputStream (org.mule.component.ComponentException)

org.mule.component.AbstractComponent:144 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/component/ComponentException.html)

Трассировка стека корневого исключения: java.lang.NullPointerException в org.mule.module.jersey.JerseyResourcesComponent.doInvoke(JerseyResourcesComponent.java:116) в org.mule.component.AbstractComponent.invokeInternal(AbstractComponent.java:122) в org.mule .component.AbstractComponent.access$000(AbstractComponent.java:57) + еще 3 (установите ведение журнала уровня отладки или '-Dmule.verbose.exceptions=true' для всего)



person Manjula Sajjanam    schedule 08.12.2015    source источник


Ответы (1)


Компонент Джерси должен быть привязан к конечной точке http, поэтому не уверен, что он может работать за конечной точкой виртуальной машины, поскольку весь заголовок http и информация о запросе будут потеряны при прохождении транспортного барьера и т. д. Вы можете попробовать скопировать заголовки из входящего трафика в исходящий. перед вызовом vm, но все еще не уверен, что это сработает.

person Ryan Carter    schedule 08.12.2015