NoTypeConversionAvailableException: верблюжий отдых dsl - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть такой веб-сервис:

<camelContext id="camel-CallAPI" xmlns="http://camel.apache.org/schema/blueprint" >
             <!--Web service starts working -->
           <restConfiguration bindingMode="auto" component="restlet" host="localhost" port="8889"/>
           <rest path="/check">
           <post uri="/version" consumes="application/json" produces="application/json">
           <to uri="direct:first"/>                
            </post> 
           </rest>     
           <route>         
          <from uri="direct:first"/>
              <setHeader headerName="Content-Type" id="header_contentType">
                  <constant>application/json</constant>
              </setHeader>
             <log message="after set header :: ${body}"/>
             <to uri="http4://..."/>
             <convertBodyTo type="java.lang.String"/>                  
             <log message="the result of the testCheckLastVersion :: ${body}"/>

Я отправляю контент json в этот веб-сервис с помощью почтальона, и мне нужен мой веб-сервис для отправки этого json в другой APIэто было упомянуто в прямой: во-первых.но когда я вызываю свой веб-сервис в почтальоне, происходит ошибка:

org.apache.camel.InvalidPayloadException: тело недоступно типа: java.io.InputStream, но имеет значение: {version = apk.1.10.0} типа: java.util.LinkedHashMap on: Message [ID-localhost-localdomain-1549348033140-14-4].Причина: нет конвертера типов, доступного для преобразования из типа: java.util.LinkedHashMap в требуемый тип: java.io.InputStream со значением {version = apk.1.10.0}.

может мне помочь любойс этим?

1 Ответ

0 голосов
/ 05 февраля 2019

Я нашел решение, исключение вызвано тем, что я установил bindingMode = "auto" в camelContext, который здесь не подходил, удалив его, и проблема решена.

<camelContext id="camel-CallAPI" xmlns="http://camel.apache.org/schema/blueprint" >
             <!--Web service starts working -->
           <restConfiguration component="restlet" host="localhost" port="8889"/>
           <rest path="/say">
              <post uri="/hi" consumes="application/json" produces="application/json">
                <to uri="direct:first"/>
              </post> 
           </rest>         
           <route>         
              <from uri="direct:first"/>
                 <setHeader headerName="Content-Type" id="_setHeader2">
                     <constant>application/json</constant>
                 </setHeader>
           <to uri="http4://..."/>
           <convertBodyTo type="java.lang.String"/>
           <log message="the result of the testCheckLastVersion :: ${body}"/>  
          </route> 

</camelContext>
...