Java 返回式Web服务

Java 返回式Web服务,java,database,webmethod,Java,Database,Webmethod,我的应用程序:Netbeans 8.0.1、ApacheTomcat 我这里有一个Webservice和Webmethod。 用户应插入SozialVersicheRungsummer SVN编号。他应该返回相应的名称Nachname。数据库中的表称为kunden。字段:SozialVersicherungsummer和Nachname @WebMethod( operationName = "SVN-Abfrage" ) public String svn(int SVN) {

我的应用程序:Netbeans 8.0.1、ApacheTomcat

我这里有一个Webservice和Webmethod。 用户应插入SozialVersicheRungsummer SVN编号。他应该返回相应的名称Nachname。数据库中的表称为kunden。字段:SozialVersicherungsummer和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
我使用soapui测试web服务。不幸的是,我的代码中有一个错误

我总是得到3作为回报。当我删除finally部分时,返回值为1。当我也删除这个,我得到2作为回报。。。我插入什么并不重要:任何像123这样的数字,或者数据库中正确的SozialVersicheRungsummer,都应该有效

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

如果有人能帮我,我会很感激的

格里茨

更换

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

您还可以在异常块中优化代码。而不是

String i= "Kann nicht gefunden werden";
return i;
你可以

return  "Kann nicht gefunden werden";

你得到了什么?是否有错误或未找到记录?我已更新问题。->我总是得到3作为回报。当我删除finally部分时,返回值为1。当我也删除这个,我得到2作为回报。。。我插入什么并不重要:任何数字,比如123,或者数据库中正确的SozialVersicheRungsummer,应该可以工作。尝试直接在后端数据库上执行SQL语句。如果它在数据库上成功生成所需的结果集,那么将其嵌入到Java代码中,最后如果Java代码成功,则实现您感兴趣的Web服务。在Java中,没有Web服务它能工作吗?如果没有,请尝试执行普通Java代码来删除Web服务。你将能够看到确切的罪犯。好的,我改变了陈述,但我仍然有问题。我更新了问题,也许你能帮忙。谢谢因此,如果将1作为返回值,则显然存在SQLException。还可以粘贴异常堆栈跟踪吗
return  "Kann nicht gefunden werden";