2015-05-12 4 views
0

У нас возникла проблема в службе данных на WSO2 DSS 3.0.0. Если я выполняю непосредственно запрос в базе данных, я не получаю ошибки. База данных представляет собой версию Sybase 12.NullPointerException в WSO2 DSS 3.0.0

DBS

<data name="DSProgram" serviceNamespace="http://myschema.org.br"> 
<config id="ProgramDS"> 
    <property name="carbon_datasource_name">ProgramDS</property> 
</config> 
<query id="updateProgram" useConfig="ProgramDS"> 
    <sql>update aca..program set name = :name, endingdate = (case when :endingdate = '' then null else :endingdate) where course = :course</sql> 
    <param name="name" sqlType="STRING"/> 
    <param name="endingdate" sqlType="STRING"/> 
    <param name="course" sqlType="INTEGER"/> 
</query> 
<operation name="updateProgram"> 
    <call-query href="updateProgram"> 
    <with-param name="name" query-param="name"/> 
    <with-param name="endingdate" query-param="endingdate"/> 
    <with-param name="course" query-param="course"/> 
    </call-query> 
</operation> 
</data> 

SOAP Envelope

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:int="http://myschema.org.br"> 
<soapenv:Header/> 
<soapenv:Body> 
    <int:updateProgram> 
    <int:name>Course name</int:name> 
    <int:endingdate></int:endingdate> 
    <int:course>999</int:course> 
    </int:updateProgram> 
</soapenv:Body> 
</soapenv:Envelope> 

SOAP Fault

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
<soapenv:Body> 
    <soapenv:Fault xmlns:axis2ns1820="http://ws.wso2.org/dataservice"> 
    <faultcode>axis2ns1820:DATABASE_ERROR</faultcode> 
    <faultstring>DS Fault Message: Error in DS non result invoke. 
DS Code: DATABASE_ERROR 
Nested Exception:- 
javax.xml.stream.XMLStreamException: DS Fault Message: Error in 'SQLQuery.processNormalQuery' 
DS Code: DATABASE_ERROR 
Source Data Service:- 
Name: DSProgram 
Location: /DSProgram.dbs 
Description: N/A 
Default Namespace: http://myschema.org.br 
Current Request Name: updateProgram 
Current Params: {endingdate=, course=999, name=Course name} 
Nested Exception:- 
java.lang.NullPointerException</faultstring> 
    <detail> 
     <axis2ns1819:DataServiceFault xmlns:axis2ns1819="http://ws.wso2.org/dataservice">DS Fault Message: Error in DS non result invoke. 
DS Code: DATABASE_ERROR 
Nested Exception:- 
javax.xml.stream.XMLStreamException: DS Fault Message: Error in 'SQLQuery.processNormalQuery' 
DS Code: DATABASE_ERROR 
Source Data Service:- 
Name: DSProgram 
Location: /DSProgram.dbs 
Description: N/A 
Default Namespace: http://myschema.org.br 
Current Request Name: updateProgram 
Current Params: {endingdate=, course=999, name=Course name} 
Nested Exception:- 
java.lang.NullPointerException</axis2ns1819:DataServiceFault> 
    </detail> 
    </soapenv:Fault> 
</soapenv:Body> 
</soapenv:Envelope> 

* Данные изменены для confidenciality

WSO2 Система DSS Log

TID[-1234] [DSS] [2015-05-12 10:51:30,156] ERROR {org.wso2.carbon.dataservices.core.engine.DataService} - DS Fault Message: Error in 'SQLQuery.processNormalQuery' DS Code: DATABASE_ERROR Source Data Service:- Name: DSProgram Location: /DSProgram.dbs Description: N/A Default Namespace: http://myschema.org.br Current Request Name: updateProgram Current Params: {endingdate=, course=999, nome=Course name} Nested Exception:- java.lang.NullPointerException org.wso2.carbon.dataservices.core.description.query.SQLQuery.processNormalQuery(SQLQuery.java:808) org.wso2.carbon.dataservices.core.description.query.SQLQuery.runQuery(SQLQuery.java:2098) org.wso2.carbon.dataservices.core.description.query.Query.execute(Query.java:252) org.wso2.carbon.dataservices.core.engine.CallQuery.executeElement(CallQuery.java:179) org.wso2.carbon.dataservices.core.engine.CallQueryGroup.executeElement(CallQueryGroup.java:111) org.wso2.carbon.dataservices.core.engine.OutputElement.execute(OutputElement.java:89) org.wso2.carbon.dataservices.core.description.operation.Operation.execute(Operation.java:71) org.wso2.carbon.dataservices.core.engine.DataService.invoke(DataService.java:569) org.wso2.carbon.dataservices.core.engine.DSOMDataSource.execute(DSOMDataSource.java:99) org.wso2.carbon.dataservices.core.engine.DSOMDataSource.serialize(DSOMDataSource.java:110) org.wso2.carbon.dataservices.core.engine.DSOMDataSource.executeInOnly(DSOMDataSource.java:80) org.wso2.carbon.dataservices.core.dispatch.SingleDataServiceRequest.processSingleRequest(SingleDataServiceRequest.java:127) org.wso2.carbon.dataservices.core.dispatch.SingleDataServiceRequest.processRequest(SingleDataServiceRequest.java:76) org.wso2.carbon.dataservices.core.dispatch.DataServiceRequest.dispatch(DataServiceRequest.java:282) org.wso2.carbon.dataservices.core.DataServiceProcessor.dispatch(DataServiceProcessor.java:39) org.wso2.carbon.dataservices.core.DBInOnlyMessageReceiver.invokeBusinessLogic(DBInOnlyMessageReceiver.java:48) org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110) org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181) org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172) org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146) org.wso2.carbon.core.transports.CarbonServlet.doPost(CarbonServlet.java:231) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90) org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111) org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:67) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:172) org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653) java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.lang.Thread.run(Unknown Source) 

ответ

0

Я думаю, что у вас есть ошибка SQL синтаксисом:

<sql>update aca..program (...)</sql> 

Две точки на schema.table?

Смежные вопросы