Нажав на сохраненный процесс - javax.ejb.EJBException - PullRequest
0 голосов
/ 17 октября 2011

Я пытаюсь запустить хранимую процедуру, но получаю сообщение об ошибке: 'javax.ejb.EJBException' ... Я никогда не работал с хранимыми процедурами, поэтому для меня это исключение немного греческое.

Кто-нибудь может пролить свет на это?Ниже я вставил код, который я написал:

@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;
}

О, и хранимая нами процедура называется getSpecimenReportXml ...

1 Ответ

0 голосов
/ 22 октября 2011

Ваше исключение скажет «вызвано» где-то, что является большой подсказкой. Если это NPE, то вы можете проверить значения dataBaseConnection и conn, чтобы убедиться, что они установлены. Для этого используйте отладчик, но исключение должно точно указать, какая строка вызвала проблему.

...