无法从http端点消费 [英] Cannot consume from http endpoint

查看:99
本文介绍了无法从http端点消费的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在下面给出了我的路由,我试图使用HTTP组件交换数据,URI包含提交数据,并且应该以响应方式获取数据,但它不起作用

My route is given below i am trying to exchange data using HTTP component , the URI contains submit data and get in response should get an data but its not working

  <route>
    <from uri="http://gatest.dnb.com/daasaccess/scripts/broker.asp?request=%3C%3Fxml+version%3D%271.0%27+encoding%3D%27UTF-8%27%3F%3E%3CDGX%3E%3CSIGNONMSGSRQV1%3E%3CSONRQ%3E%3CDTCLIENT%3E2007-05-04%3C%2FDTCLIENT%3E%3CUSERID%3Esalesautomation%3C%2FUSERID%3E%3CUSERPASS%3ESFAAdmin%3C%2FUSERPASS%3E%3CLANGUAGE%3EEN%3C%2FLANGUAGE%3E%3CFI%3E%3CORG%3EDandB%3C%2FORG%3E%3C%2FFI%3E%3CAPPID%3EXML%3C%2FAPPID%3E%3CAPPVER%3E0010%3C%2FAPPVER%3E%3C%2FSONRQ%3E%3C%2FSIGNONMSGSRQV1%3E%3CCREDITMSGSRQV2%3E%3CDATATRNRQ%3E%3CTRNUID%3E2D995FE0173B2C%3C%2FTRNUID%3E%3CDATARQ%3E%3CSRVRTID%3E%3C%2FSRVRTID%3E%3CSVC_TYPE_CD%3E%3C%2FSVC_TYPE_CD%3E%3CREAS_CD%3E%3C%2FREAS_CD%3E%3CCUST_ENDR%3E%3C%2FCUST_ENDR%3E%3CCUST_RQ%3E%3C%2FCUST_RQ%3E%3CREFRESH_IND%3E%3C%2FREFRESH_IND%3E%3CIGNORE_REQD_FLDS_IND%3E%3C%2FIGNORE_REQD_FLDS_IND%3E%3CSUBJ_DET%3E%3CDUNS_NBR%3E829654420%3C%2FDUNS_NBR%3E%3CCTRY_CD%3E%3C%2FCTRY_CD%3E%3CTRD_UP_IND%3E%3C%2FTRD_UP_IND%3E%3CPRIM_NME%3E%3C%2FPRIM_NME%3E%3CBUS_REGN_NBR%3E%3C%2FBUS_REGN_NBR%3E%3CBUS_REGN_NBR_TYPE_CD%3E%3C%2FBUS_REGN_NBR_TYPE_CD%3E%3CADR_LINE%3E%3C%2FADR_LINE%3E%3CPOST_TOWN%3E%3C%2FPOST_TOWN%3E%3CPRIM_GEO_AREA%3E%3C%2FPRIM_GEO_AREA%3E%3CPOST_CODE%3E%3C%2FPOST_CODE%3E%3CTLCM_NBR%3E%3C%2FTLCM_NBR%3E%3C%2FSUBJ_DET%3E%3CPROD%3EEnterprise+Management%3C%2FPROD%3E%3CPROD_TYPE_CD%3ED%3C%2FPROD_TYPE_CD%3E%3CDELV_REQS_NOW%3E%3CDELV_MODE_CD%3EDIRECT%3C%2FDELV_MODE_CD%3E%3CDELV_FMT_CD%3EXML%3C%2FDELV_FMT_CD%3E%3CLANG%3EEN%3C%2FLANG%3E%3CDELV_EMAIL%3E%3C%2FDELV_EMAIL%3E%3CDELV_EMAIL_CC%3E%3C%2FDELV_EMAIL_CC%3E%3C%2FDELV_REQS_NOW%3E%3CDELV_REQS_INV%3E%3CDELV_MODE_CD%3E%3C%2FDELV_MODE_CD%3E%3CDELV_FMT_CD%3E%3C%2FDELV_FMT_CD%3E%3CLANG%3E%3C%2FLANG%3E%3CDELV_EMAIL%3E%3C%2FDELV_EMAIL%3E%3CDELV_EMAIL_CC%3E%3C%2FDELV_EMAIL_CC%3E%3C%2FDELV_REQS_INV%3E%3CDELV_REQS_NTFY%3E%3CDELV_MODE_CD%3E%3C%2FDELV_MODE_CD%3E%3CDELV_FMT_CD%3E%3C%2FDELV_FMT_CD%3E%3CLANG%3E%3C%2FLANG%3E%3CDELV_EMAIL%3E%3C%2FDELV_EMAIL%3E%3CDELV_EMAIL_CC%3E%3C%2FDELV_EMAIL_CC%3E%3C%2FDELV_REQS_NTFY%3E%3C%2FDATARQ%3E%3C%2FDATATRNRQ%3E%3C%2FCREDITMSGSRQV2%3E%3C%2FDGX%3E"/>
    <log message="starting....."/>
    <process ref="nextgenProcessor"/>
    <to uri="file://src/test"/>
    <log message="ending....."/>
  </route>

我遇到以下错误:

[ERROR] Error occurred while running main from: org.apache.camel.spring.Main
[ERROR] 
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.camel.maven.RunMojo$1.run(RunMojo.java:488)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.camel.RuntimeCamelException: java.lang.UnsupportedOperationException: Cannot consume from http endpoint

推荐答案

基本上该错误消息是正确的,您不能使用 http:组件提供基于HTTP的终结点,用于消耗外部HTTP资源",然后在下一节中指出"您只能 >产生到由HTTP组件生成的端点.因此,永远不要将其用作骆驼路线的输入."

Basically the error message is correct, you cannot use the http component as a consumer. However the documentation is kind of unhelpful. The first line says "The http: component provides HTTP based endpoints for consuming external HTTP resources" but then in the next section it states "You can only produce to endpoints generated by the HTTP component. Therefore it should never be used as input into your camel Routes."

一种方法是使用诸如"direct"或"quartz2"组件之类的东西作为使用者,然后在生产者中使用"http"组件.例如,此路由将每分钟运行一次,提交到指定的URL并使用带时间戳的文件名将响应保存在/tmp中:-

One approach would be to use something like the 'direct' or 'quartz2' components as the consumer, then use the 'http' component in a producer. For example, this route will run every minute, submit to the URL specified and save the response in /tmp with a timestamped filename :-

<route id="httpFetch">
    <from uri="quartz2://httpFetch?cron=00+/1+*+?+*+1-5" />
    <to uri="http://gatest.dnb.com/daasaccess/scripts/broker.asp?request=%3C%3Fxml+version%3D%271.0%27+encoding%3D%27UTF-8%27%3F%3E%3CDGX%3E%3CSIGNONMSGSRQV1%3E%3CSONRQ%3E%3CDTCLIENT%3E2007-05-04%3C%2FDTCLIENT%3E%3CUSERID%3Esalesautomation%3C%2FUSERID%3E%3CUSERPASS%3ESFAAdmin%3C%2FUSERPASS%3E%3CLANGUAGE%3EEN%3C%2FLANGUAGE%3E%3CFI%3E%3CORG%3EDandB%3C%2FORG%3E%3C%2FFI%3E%3CAPPID%3EXML%3C%2FAPPID%3E%3CAPPVER%3E0010%3C%2FAPPVER%3E%3C%2FSONRQ%3E%3C%2FSIGNONMSGSRQV1%3E%3CCREDITMSGSRQV2%3E%3CDATATRNRQ%3E%3CTRNUID%3E2D995FE0173B2C%3C%2FTRNUID%3E%3CDATARQ%3E%3CSRVRTID%3E%3C%2FSRVRTID%3E%3CSVC_TYPE_CD%3E%3C%2FSVC_TYPE_CD%3E%3CREAS_CD%3E%3C%2FREAS_CD%3E%3CCUST_ENDR%3E%3C%2FCUST_ENDR%3E%3CCUST_RQ%3E%3C%2FCUST_RQ%3E%3CREFRESH_IND%3E%3C%2FREFRESH_IND%3E%3CIGNORE_REQD_FLDS_IND%3E%3C%2FIGNORE_REQD_FLDS_IND%3E%3CSUBJ_DET%3E%3CDUNS_NBR%3E829654420%3C%2FDUNS_NBR%3E%3CCTRY_CD%3E%3C%2FCTRY_CD%3E%3CTRD_UP_IND%3E%3C%2FTRD_UP_IND%3E%3CPRIM_NME%3E%3C%2FPRIM_NME%3E%3CBUS_REGN_NBR%3E%3C%2FBUS_REGN_NBR%3E%3CBUS_REGN_NBR_TYPE_CD%3E%3C%2FBUS_REGN_NBR_TYPE_CD%3E%3CADR_LINE%3E%3C%2FADR_LINE%3E%3CPOST_TOWN%3E%3C%2FPOST_TOWN%3E%3CPRIM_GEO_AREA%3E%3C%2FPRIM_GEO_AREA%3E%3CPOST_CODE%3E%3C%2FPOST_CODE%3E%3CTLCM_NBR%3E%3C%2FTLCM_NBR%3E%3C%2FSUBJ_DET%3E%3CPROD%3EEnterprise+Management%3C%2FPROD%3E%3CPROD_TYPE_CD%3ED%3C%2FPROD_TYPE_CD%3E%3CDELV_REQS_NOW%3E%3CDELV_MODE_CD%3EDIRECT%3C%2FDELV_MODE_CD%3E%3CDELV_FMT_CD%3EXML%3C%2FDELV_FMT_CD%3E%3CLANG%3EEN%3C%2FLANG%3E%3CDELV_EMAIL%3E%3C%2FDELV_EMAIL%3E%3CDELV_EMAIL_CC%3E%3C%2FDELV_EMAIL_CC%3E%3C%2FDELV_REQS_NOW%3E%3CDELV_REQS_INV%3E%3CDELV_MODE_CD%3E%3C%2FDELV_MODE_CD%3E%3CDELV_FMT_CD%3E%3C%2FDELV_FMT_CD%3E%3CLANG%3E%3C%2FLANG%3E%3CDELV_EMAIL%3E%3C%2FDELV_EMAIL%3E%3CDELV_EMAIL_CC%3E%3C%2FDELV_EMAIL_CC%3E%3C%2FDELV_REQS_INV%3E%3CDELV_REQS_NTFY%3E%3CDELV_MODE_CD%3E%3C%2FDELV_MODE_CD%3E%3CDELV_FMT_CD%3E%3C%2FDELV_FMT_CD%3E%3CLANG%3E%3C%2FLANG%3E%3CDELV_EMAIL%3E%3C%2FDELV_EMAIL%3E%3CDELV_EMAIL_CC%3E%3C%2FDELV_EMAIL_CC%3E%3C%2FDELV_REQS_NTFY%3E%3C%2FDATARQ%3E%3C%2FDATATRNRQ%3E%3C%2FCREDITMSGSRQV2%3E%3C%2FDGX%3E"/>
    <to uri="file:/tmp?fileName=data-${date:now:yyyyMMdd-HHmm}.xml&amp;tempFileName=data-${date:now:yyyyMMdd-HHmm}.xml.part" />
</route>

这篇关于无法从http端点消费的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆