2014-12-09 71 views
0

我的應用程序:Netbeans(8.0.1),Apache TomcatWebservice with Return

我在這裏有一個Webservice和Webmethod。 用戶應該插入一個數字(Sozialversicherungsnummer(SVN))。他應該返回相應的名稱(「Nachname」)。數據庫中的表稱爲「kunden」。字段:「Sozialversicherungsnummer」和「Nachname」。

@WebMethod(operationName = "SVN-Abfrage") 
    public String svn(int SVN) 
    { 
     try 
     { 
     connection = DriverManager.getConnection( 
     DATABASE_URL, USERNAME, PASSWORD); 
     statement = connection.createStatement(); 
     ResultSet resultSet = statement.executeQuery("SELECT Nachname FROM kunden WHERE Sozialversicherungsnummer='" + SVN +"'"); 

     // if requested seat is available, reserve it 
     if (resultSet.next()) 
     { 
      return resultSet.getString("Nachname"); 
     } // end if 
      return "fehler"; 
     } // end try 
     catch (SQLException e) 
     { 
     e.printStackTrace(); 
     return ("1"); 
     } // end catch 
     catch (Exception e) 
     { 
     e.printStackTrace(); 
     return ("2"); 
     } // end catch 
     finally 
     { 
     try 
     { 
      statement.close(); 
      connection.close(); 
     } // end try 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
      return ("3"); 
     } // end catch 
     } // end finally 
    } // end WebMethod 

我用SOAP UI測試Webservice。不幸的是,我的代碼存在錯誤。

我總是得到「3」作爲回報。當我刪除我的「最後」部分時,我得到「1」作爲回報。當我也刪除這個,我得到「2」作爲回報...不要緊,我插入:任何數字像「123」或從數據庫中的右邊「Sozialversicherungsnummer」應該工作。

我想從用戶那裏得到一個Integer,並返回一個相應的Name(「Nachname」)。更復雜,因爲我認爲: -/

如果有人可以幫助我會友好。

格爾茨

+0

您能得到什麼?是否有錯誤或「找不到記錄」? – Bhaskara 2014-12-09 11:34:37

+0

我更新了問題。 - >我總是得到「3」作爲回報。當我刪除我的「最後」部分時,我得到「1」作爲回報。當我也刪除這個,我得到「2」作爲回報...不要緊,我插入:任何數字像「123」或從數據庫中的右邊「Sozialversicherungsnummer」應該工作。 – user3497759 2014-12-09 22:33:04

+0

嘗試直接在後端數據庫上執行該SQL語句。如果數據庫成功生成所需的結果集,那麼將其嵌入到Java代碼中,最後如果Java代碼成功,則實現您感興趣的Web服務。 – Tiny 2014-12-09 22:39:42

回答

0

更換

statement.executeQuery("SELECT \"*\" FROM \"kunden\"" + "WHERE (\"Sozialversicherungsnummer\" = '" + SVN + "')"); 

隨着

statement.executeQuery("SELECT * FROM kunden WHERE Sozialversicherungsnummer='" + SVN +"'"); 

您也可以在異常塊優化代碼。取而代之的

String i= "Kann nicht gefunden werden"; 
return i; 

可以

return "Kann nicht gefunden werden"; 
+0

好吧,我改變了聲明,但我仍然有問題。我更新了這個問題,也許你可以提供幫助。謝謝! – user3497759 2014-12-09 22:33:41

+0

所以,如果你得到1作爲返回值,那麼顯然有一個SQLException。你也可以粘貼異常堆棧跟蹤 – Bhaskara 2014-12-10 05:45:41