我目前正在开发一个Web服务。我以为我已经准备好发布我的第一版产品,但是我不断地遇到一个让我无法理解的SQLException异常。顺便说一下,我是针对Oracle数据库进行开发的。 首先让我给您展示我的代码:
try{
variable = DoQuery("SELECT KEY FROM TABLE WHERE KEY IN ('KEY1', 'KEY2') AND ROWNUM = 1").getString("HANDLE");
}catch(SQLException e){
return "Wasn't able to gather key: " + e.toString() + " - " + e.getSQLState();
}
方法“DoQuery”:
private ResultSet DoQuery(String sqlString){
Statement sqlHandleStatement;
try {
sqlHandleStatement = getStatement();
return sqlHandleStatement.executeQuery(sqlString);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
方法 "getStatement":
private Statement getStatement() throws SQLException {
DataSource dataSource = null;
try {
dataSource = (DataSource) JNDIUtils.getInitialContext().lookup(JNDIUtils.DEFAULT_DATASOURCE);
} catch (NamingException e) {
e.printStackTrace();
}
Connection connection;
connection = dataSource.getConnection();
Statement statement;
statement = connection.createStatement();
return statement;
}
然而,如果我执行我的SOAP请求,我一直收到以下返回信息:
<SOAP-ENV:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns2:getNextRMANumberResponse xmlns:ns2="http://webservice.epm.com/">
<return>Wasn't able to gather key: java.sql.SQLException: ResultSet.next was not called - 99999</return>
</ns2:getNextRMANumberResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
错误信息:"无法收集密钥:java.sql.SQLException: ResultSet.next未被调用-99999"(与此帖子中给出的第一个代码片段进行比较)
这是什么意思?我真的不明白为什么我应该执行"ResultSet.next"!
提前感谢!