【发布时间】: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 代码。您将能够看到确切的罪魁祸首。