【问题标题】:Webservice with Return带返回的 Web 服务
【发布时间】:2014-12-09 11:25:41
【问题描述】:

我的应用程序:Netbeans (8.0.1)、Apache Tomcat

我这里有一个 Web 服务和 Web 方法。 用户应插入一个数字 (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 测试 Web 服务。不幸的是,我的代码中有一个错误。

我总是得到“3”作为回报。当我删除我的“最终”部分时,我得到“1”作为回报。当我也删除它时,我得到“2”作为返回......我插入什么都没关系:任何数字,如“123”或数据库中应该工作的正确“Sozialversicherungsnummer”。

我想从用户那里得到一个整数,并返回一个相应的名称(“Nachname”)。比我想象的要复杂得多:-/

如果有人可以帮助我,我会很友好。

问候

【问题讨论】:

  • 你得到了什么?是否有错误或“未找到记录”?
  • 我更新了问题。 -> 我总是得到“3”作为回报。当我删除我的“最终”部分时,我得到“1”作为回报。当我也删除它时,我得到“2”作为返回......我插入什么都没关系:任何数字,如“123”或数据库中应该工作的正确“Sozialversicherungsnummer”。
  • 尝试直接在后端数据库上执行该 SQL 语句。如果它在生成所需结果集的数据库上成功,则将其嵌入到您的 Java 代码中,最后如果 Java 代码成功,则实现您感兴趣的 Web 服务。
  • 我在 MYSQL 工作台上尝试过:youscreen.de/wqjjwlew19.jpg 在这里可以正常工作。在 Java 中不是...
  • 没有网络服务可以工作吗?如果没有,请尝试执行删除 web 服务的纯 Java 代码。您将能够看到确切的罪魁祸首。

标签: java database webmethod


【解决方案1】:

替换

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";

【讨论】:

  • 好的,我更改了声明,但我仍然有问题。我更新了问题,也许你可以帮忙。谢谢!
  • 所以,如果你得到 1 作为返回值,那么显然有一个 SQLException。你也可以粘贴异常堆栈跟踪
猜你喜欢
  • 2017-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
  • 1970-01-01
  • 2012-04-05
  • 2010-12-24
  • 2013-05-25
相关资源
最近更新 更多