Reputation: 51
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>
I am getting below error :
[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
Upvotes: 5
Views: 8105
Reputation: 1338
You can use enrich with aggregation strategy:
from("quartz:...")
.enrich("http://...", SomeAggregationStrategy)
.to("")
Upvotes: 0
Reputation:
Or you can do this way:
<route>
<from uri="timer://runOnce?repeatCount=1&delay=1000"/>
<to uri="http://your-url"/>
<log message="starting....."/>
<process ref="nextgenProcessor"/>
<to uri="file://src/test"/>
<log message="ending....."/>
Upvotes: -1
Reputation: 170
You must specify the component, which would be responsible of consumption from http:
from("jetty:http://localhost:8080/test")
.to(...something else...);
Don't forget to include the component's jar into your maven/gradle project.
Upvotes: 2
Reputation: 1168
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."
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&tempFileName=data-${date:now:yyyyMMdd-HHmm}.xml.part" />
</route>
Upvotes: 4