Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
hi all:
here is my design to get restult from rest api:
the patern of the restclient url is :
http://services.groupkt.com/state/search/{countryCode}?text={text to search}
the url is set is :
"http://services.groupkt.com/state/search/"+req.countryCode+"?text="+req.searchText
when i call with parameter
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.talend.org/service/"> <soapenv:Header/> <soapenv:Body> <ser:CountrySearchWebServiceOperationRequest> <countryCode>IND</countryCode> <searchText>pradesh</searchText> </ser:CountrySearchWebServiceOperationRequest> </soapenv:Body> </soapenv:Envelope>
the rest client URL should be:
http://services.groupkt.com/state/search/IND?text=pradesh
the json result should be:
{ "RestResponse" : { "messages" : [ "Total [5] records found." ], "result" : [ { "id" : 69, "country" : "IND", "name" : "Madhya Pradesh", "abbr" : "MP", "area" : "72626809SKM", "largest_city" : "Bhopal", "capital" : "Bhopal" }, { "id" : 82, "country" : "IND", "name" : "Uttar Pradesh", "abbr" : "UP", "area" : "199812341SKM", "largest_city" : "Lucknow", "capital" : "Lucknow" }] } }
the result is OK :
but when the paramter is changed, and the json "result" value is blank, the service throw an exception:
the parameter:
the rest client URL should be:
http://services.groupkt.com/state/search/IND?text=pradesh3
the result of the api is:
{ "RestResponse" : { "messages" : [ "No matching state found for requested code [IND->pradesh3]." ], "result" : [ ] } }
the talend studio print the error:
[WARN ]: org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for {http://www.talend.org/service/}CountrySearchWebService#{http://www.talend.org/service/}CountrySearchWebServiceOperation has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: Could not generate the XML stream caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog at [row,col {unknown-source}]: [2,0]. at org.apache.cxf.databinding.source.XMLStreamDataWriter.write(XMLStreamDataWriter.java:115) at org.apache.cxf.databinding.source.XMLStreamDataWriter.write(XMLStreamDataWriter.java:65) at org.apache.cxf.databinding.source.XMLStreamDataWriter.write(XMLStreamDataWriter.java:53) at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:137) at org.apache.cxf.wsdl.interceptors.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:90) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:247) at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:79) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1182) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1116) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) at org.eclipse.jetty.server.Server.handle(Server.java:534) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) at java.lang.Thread.run(Unknown Source) Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog at [row,col {unknown-source}]: [2,0] at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:685) at com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2141) at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2047) at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1131) at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:793) at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:722) at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:648) at org.apache.cxf.databinding.source.XMLStreamDataWriter.write(XMLStreamDataWriter.java:111) ... 28 more
is that the empty "result" cause the error?
please help me out, thank you!