2011-10-17 3 views
0

J'essaye de frapper une procédure stockée mais j'obtiens ce message d'erreur: 'javax.ejb.EJBException' ... Je n'ai jamais travaillé avec des procédures stockées ainsi le l'exception est un peu grec pour moi.Frapper stocké proc - javax.ejb.EJBException

Toute personne qui pourrait peut-être faire la lumière là-dessus? Ci-dessous je collais le code que j'ai écrit:

@WebMethod(operationName = "getSpecimenResultsXml") 
public String getSpecimenResultsXml(@WebParam(name = "specimenGuid") String specimenGuid, @WebParam(name = "publicationGuid") String publicationGuid, @WebParam(name = "forProvider") String forProvider) { 

    //Method variables 
    ResultSet rs = null; 
    String xml = null; 

    // 1) get server connection 
    Connection conn = dataBaseConnection.getConnection(); 

    // 2) Pass recieved parameters to stored proc. 
    try { 
     CallableStatement proc = 
       conn.prepareCall("{ call getSpecimenReportXml(?, ?, ?) }"); 
     proc.setString(1, specimenGuid); 
     proc.setString(2, publicationGuid); 
     proc.setString(3, forProvider); 
     proc.execute(); 

     rs = proc.getResultSet(); 

    } catch (SQLException e) { 
     System.out.println("--------------Error in getSpecimenResultsXml------------"); 
     System.out.println("Cannot call stored proc: " + e); 
     System.out.println("--------------------------------------------------------"); 
    } 

    // 3) Get String from result set 
    try { 
     xml = rs.getString(1); 
    } catch (SQLException e) { 
     System.out.println("--------------Error in getSpecimenResultsXml------------"); 
     System.out.println("Cannot retrieve result set: " + e); 
     System.out.println("--------------------------------------------------------"); 
    } 

    // 4) close connection 
    try { 
     conn.close(); 
    } catch (Exception e) { 
     System.out.println("--------------Error in getSpecimenResultsXml------------"); 
     System.out.println("Cannot close connection: " + e); 
     System.out.println("--------------------------------------------------------"); 
    } 

    // 5) return the returned String 
    return xml; 
} 

Oh, et la procédure stockée nous appelions getSpecimenReportXml ...

+2

L'exception est un mystère pour nous, aussi, car nous ne pouvons pas le voir. Pouah; ces commentaires sont bruit, et s'il vous plaît utiliser la journalisation au lieu de S.o.p.s. –

+0

Apparemment, il a été provoqué par une exception NullPointerException. Mais encore une fois, je ne sais pas où cela aurait eu lieu. Si vous voulez l'exception complète, je pourrais l'afficher? Mais c'est pas mal de lignes. Pour les commentaires, ça ne restera pas là, c'est juste là pour l'instant pour m'aider à suivre. Quand je commet mes modifications sur notre CVS, je les retire ... Mais c'est à côté de ça ... – Tiwaz89

+0

Il n'y a absolument aucun moyen pour quelqu'un d'aider sans voir l'erreur réelle. –

Répondre

0

Votre exception serait dire « causé par » quelque part - ce qui est un indice. S'il s'agit d'un NPE, vous pouvez vérifier les valeurs dataBaseConnection et conn pour vous assurer qu'elles ont bien été définies. Utilisez un débogueur pour cela, mais l'exception doit vous indiquer exactement quelle ligne a provoqué le problème.

Questions connexes