2014-12-09 54 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