2014-12-09 2 views
0

내 애플리케이션 : Netbeans (8.0.1), Apache Tomcat돌아온 웹 서비스

여기 Webservice 및 Webmethod가 있습니다. 사용자가 숫자 (SVN (Sozialversicherungsnummer))를 삽입해야합니다. 그는 해당 이름 ("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"와 같은 숫자를 사용해야합니다.

사용자로부터 정수를 가져오고 해당 이름 ("Nachname")을 반환하고자합니다. 생각보다 훨씬 복잡해 졌어. -/

누군가 나를 도울 수 있다면 친절 할 것입니다.

Greetz

+0

당신은 무엇을 얻을 수 있습니까? 오류가 있거나 "기록이 없습니다"입니까? – Bhaskara

+0

질문이 업데이트되었습니다. -> 나는 항상 "3"을 얻는다. "마침내"섹션을 삭제하면 "1"이 반환됩니다. 또한 이것을 지우면 "2"가 반환됩니다 ... 내가 삽입 한 것이 중요하지 않습니다 : 데이터베이스에서 "123"또는 오른쪽 "Sozialversicherungsnummer"와 같은 숫자를 사용해야합니다. – user3497759

+0

백 엔드 데이터베이스에서 SQL 문을 직접 실행 해보십시오. 원하는 결과 집합을 생성하는 데이터베이스에서 성공하면 Java 코드에 임베드하고 마지막으로 Java 코드가 성공하면 원하는 웹 서비스를 구현합니다. – Tiny

답변

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

+0

따라서 반환 값으로 1을 얻는다면 분명히 SQLException이 있습니다. 또한 예외 스택 추적을 붙여 넣을 수 있습니까? – Bhaskara