【发布时间】:2017-04-12 02:45:36
【问题描述】:
我正在创建 WSO2ESB 代理服务,它从 WSO2DSS 服务器获取数据并对其进行迭代,然后将获取请求发送到 WSO2DSS。
<iterate id="it"
expression="//*[local-name()='data']"
sequential="true">
<target>
<sequence>
<call>
<endpoint>
<http method="GET"
uri-template="http://localhost:9766/services/TEST/test?testId={uri.var.testId}"/>
</endpoint>
</call>
<send/>
</sequence>
</target>
</iterate>
但是 DSS 给出了这个错误:
[] [2016-11-28 13:13:03,808] 错误 {org.wso2.carbon.dataservices.core.DBInOutMessageReceiver} - 错误 进出消息接收者 {org.wso2.carbon.dataservices.core.DBInOutMessageReceiver} DS 代码: INCOMPATIBLE_PARAMETERS_ERROR 嵌套异常:- javax.xml.stream.XMLStreamException:DS 错误消息:错误 'CallQuery.extractParams',找不到类型为:query-param 的参数 名称:testId DS 代码:INCOMPATIBLE_PARAMETERS_ERROR 源数据 服务:- 名称:DAKPR 位置:/DAKPR.dbs 描述:N/A 默认 命名空间:http://dss.example.com/TEST 当前请求名称: 测试当前参数:{}
在 org.wso2.carbon.dataservices.core.dispatch.SingleDataServiceRequest.processRequest(SingleDataServiceRequest.java:75) 在 org.wso2.carbon.dataservices.core.dispatch.DataServiceRequest.dispatch(DataServiceRequest.java:354) 在 org.wso2.carbon.dataservices.core.DataServiceProcessor.dispatch(DataServiceProcessor.java:41) 在 org.wso2.carbon.dataservices.core.DBInOutMessageReceiver.invokeBusinessLogic(DBInOutMessageReceiver.java:57) 在 org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractInOutSyncMessageReceiver.java:42) 在 org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110) 在 org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 在 org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:144) 在 org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:139) 在 org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:843) 在 org.wso2.carbon.core.transports.CarbonServlet.handleRestRequest(CarbonServlet.java:303) 在 org.wso2.carbon.core.transports.CarbonServlet.doGet(CarbonServlet.java:152) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:624) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 在 org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61) 在 org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128) 在 org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 在 org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter.java:72) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:120) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 在 org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99) 在 org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47) 在 org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57) 在 org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValve(TomcatValveContainer.java:47) 在 org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62) 在 org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159) 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 在 org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442) 在 org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082) 在 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623) 在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1756) 在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1715) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 在 java.lang.Thread.run(Thread.java:745)
端点http://localhost:9766/services/TEST/test?testId=1 正在工作,但是当在迭代调解器中与 WSO2ESB 一起使用时,它不起作用。为什么?
【问题讨论】: