Первый постер здесь. Проблема, с которой я сталкиваюсь, заключается в Java и XML. Проблема, с которой я столкнулся, заключается в том, что пользователь отправит запрос XML VerifyAccount в наши системы, и в зависимости от того, какая информация была отправлена, наша система проверит учетную запись, отправит ошибку незарегистрированного пользователя или ошибку неверной учетной записи.
Я проделал некоторую работу над кодом, я добавил элемент в схему XML, и он работал, только если в запросе вновь созданный элемент был проанализирован в xml. Проблема в том, что я не хочу передавать этот элемент в запросах XML, но если я исключаю этот элемент, код не работает должным образом.
Функция Java:
private String checkPersonID(String[] loginDetails, String serviceName, Connection conn, Element service) throws SQLException, JspException
{
assert loginDetails != null : "You need to set loginDetails before calling checkPersonID()";
assert serviceName != null : "You need to set serviceName before calling checkPersonID()";
CallableStatement stmt = conn.prepareCall( "{call jspCheckPersonID (?)}" )
try
{
stmt.setString(1, loginDetails[INDEX_USERNAME] );
ResultSet rs = stmt.executeQuery();
// Make sure this person is a valid user - if so return his personID, otherwise throw appropriate Exception
if (serviceName.equals ("AccountVerify") && service.getChild("ServiceDetail").getChild("detailedErrorMesage").getText().equals ("true") && !rs.next())
{
throw new JspException( JspException.UNREGISTERED_ACCOUNT );
}
else if ( rs.getRow() != 1 || !rs.getString("Password").trim().equalsIgnoreCase( loginDetails[INDEX_PASSWORD] ))
{
throw new JspException( JspException.INVALID_ACCOUNT );
}
// code ommitted
Недавно добавленный элемент в XML - detailErrorMessage.
Запрос XML должен быть:
<?xml version="1.0" encoding="UTF-8"?>
<Request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="--" Version="1.0">
<Identification>
<UserID>your.address@your.company</UserID>
<Password>password</Password>
</Identification>
<Service>
<ServiceName>AccountVerify</ServiceName>
<ServiceDetail/>
</Service>
</Request>
Это запрос, если в этот запрос добавлен элемент detailErrorMesage, функция работает как задумано. Что я делаю не так в этом коде? Я думал об этом в течение нескольких дней, и это заставляет меня задуматься!
Любая помощь будет очень ценится!
Спасибо