2016-11-23 54 views
1

我想打電話給使用JDBC驅動程序6.0爲SQL Server存儲過程,如果存儲過程得到的錯誤Operation not supported存儲過程使用遊標,XML操作和/或臨時表。JDBC驅動程序的SQL Server將引發SqlServerException:「不支持操作」,同時呼籲其採用遊標

如果我修改存儲過程定義以獲得簡單的select查詢,那麼它可以工作,但是如果它有遊標或臨時表,則會引發錯誤Operation not supported

我正在使用SQL Server 2008

我從WSO2 DSS服務器

確切的錯誤,我得到調用存儲過程是這樣的:

com.microsoft.sqlserver.jdbc.SQLServerException:不支持此操作。 在org.wso2.carbon.dataservices.core.engine.DSOMDataSource.execute(DSOMDataSource.java:102) 在org.wso2.carbon.dataservices.core.dispatch.SingleDataServiceRequest.processRequest(SingleDataServiceRequest.java:73)

下面是完整的堆棧追蹤的問題:

DS Code: DATABASE_ERROR 
Nested Exception:- 
javax.xml.stream.XMLStreamException: DS Fault Message: Error in 'SQLQuery.processStoredProcQuery': This operation is not supported. 

DS Code: DATABASE_ERROR 
Source Data Service:- 
Name: RMLDS 
Location: C:\WSO2SO~1\WSO2DS~1.1\bin\..\tmp\carbonapps\-1234\1479805129410stap-capp_1.0.0.car\RMLDS_1.0.0\RMLDS-1.0.0.dbs 
Description: 
Default Namespace: 
Current Request Name: _putorionsetuppagecount 
Current Params: {xml=23} 
Nested Exception:- 
com.microsoft.sqlserver.jdbc.SQLServerException: This operation is not supported. 
      at org.wso2.carbon.dataservices.core.dispatch.SingleDataServiceRequest.processRequest(SingleDataServiceRequest.java:75) 
      at org.wso2.carbon.dataservices.core.dispatch.DataServiceRequest.dispatch(DataServiceRequest.java:354) 
      at org.wso2.carbon.dataservices.core.DataServiceProcessor.dispatch(DataServiceProcessor.java:41) 
      at org.wso2.carbon.dataservices.core.DBInOutMessageReceiver.invokeBusinessLogic(DBInOutMessageReceiver.java:57) 
      at org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractInOutSyncMessageReceiver.java:42) 
      at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110) 
      at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 
      at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:173) 
      at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146) 
      at org.wso2.carbon.core.transports.CarbonServlet.doPost(CarbonServlet.java:231) 
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) 
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
      at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61) 
      at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128) 
      at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68) 
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
      at org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68) 
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
      at org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter.java:72) 
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
      at org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61) 
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
      at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:120) 
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) 
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) 
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
      at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99) 
      at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47) 
      at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57) 
      at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47) 
      at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62) 
      at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159) 
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 
      at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57) 
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442) 
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082) 
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623) 
      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1756) 
      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1715) 
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
      at java.lang.Thread.run(Thread.java:745) 

回答

1

我發現了這個問題。
我的存儲過程將字符串作爲輸入,但該字符串的內容是xml。所以wso2 dss TryIt工具失敗,出現上述錯誤,因爲我通過它作爲<test/>,但我需要通過它作爲&lt;Test/&gt;

我希望這可以幫助其他人

0

不知道,但可能是,服務器端的數據庫創建遊標時沒有的原因,如果請求的結果集類型是僅向前結果集。可能會嘗試將SelectMethod屬性設置爲光標。

https://docs.oracle.com/cd/E13157_01/wlevs/docs30/jdbc_drivers/mssqlserver.html

+0

不,它沒有工作。我寫了一個簡單的Java應用程序做同樣的事情,它在那裏工作! 。似乎與wso2 dss服務器的一些問題。或者可能是我失去了一些東西.. – Pawandeep

相關問題