2015-11-28 1 views
3

У меня есть требование, в котором мне нужно предоставить службу обслуживания с полезной нагрузкой XML. После этого мне нужно получить полезную нагрузку xml и преобразовать ее в другой xml с помощью xslt transformer.Извлечь полезную нагрузку XML из HTTP-входящего шлюза и передать интеграцию весов трансформатора xslt

Я борюсь за то, как получить информацию о xml, которая может действовать как вход для трансформатора xslt.

Я хочу избежать маршеллинга и немаркировки над головой.

Может кто-то, пожалуйста, помогите мне на том же.

С уважением Лалита

ответ

1

Задавая подобные вопросы, то лучше, если вы покажете, что вы пробовали и что не работает.

В этом случае все, что вам нужно, это HTTP Inbound Gateway.

Если входящий content-type содержит текст; полезная нагрузка будет равна String. Если нет (например, application/xml), то вам нужно настроить шлюз с типом вы хотите ...

request-payload-type="java.lang.String" 

иначе, полезная нагрузка будет byte[].

+0

Спасибо Гэри за ответ .... Я думаю, что вы дали мне очень важный ключ .... о байт [] ..... Теперь я получил моя проблема решена .. Большое спасибо снова –

+0

Гэри, можете ли вы предложить, как я могу получить доступ заголовки и полезную нагрузку как ... так как я хочу выполнять следующие задачи как часть цепочки 1) извлекать информацию аутентификации из заголовка 2) validate xml 3) transform –

+0

Если ответ решает вашу проблему, здесь принято отмечать ответ как ' принято (отметьте/отметьте отметку по голосам). Это помогает другим пользователям искать похожие проблемы. Вы действительно должны задать другой вопрос, а не помогать этому. Однако см. [Документацию о сопоставлении заголовков] (http://docs.spring.io/spring-integration/reference/html/http.html#http-header-mapping); если у вас все еще есть вопросы, спросите другую. –

0

на основе предложения Гэри ... использовал следующий код и он работал ...

<int:channel id="inputChannel"></int:channel> 

<int-http:inbound-gateway request-channel="inputChannel" path="/test" supported-methods="POST"> 
    <int-http:request-mapping consumes="application/xml" produces="application/xml" /> 
</int-http:inbound-gateway> 

<int:chain input-channel="inputChannel"> 
    <int:service-activator ref="sa1"></int:service-activator> 
    <int-xml:xslt-transformer 
     xsl-resource="classpath:/testTransformer.xsl"/> 
    <int:service-activator ref="sa2"></int:service-activator> 
</int:chain> 

<!-- input type is byte[] --> 
<bean id="sa1" class="com.fidintl.integration.ServiceActivator1"> 
</bean> 

<!-- input type is String --> 
<bean id="sa2" class="com.fidintl.integration.ServiceActivator2"></bean> 

Похоже на пост (как указано Gary) выход байт [], который я преобразуется в строку в ServiceActivator1

с уважением, Лалита Кумар

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