这是第一次海报。我面临的问题是Java和XML。我面临的问题是,用户会向我们的系统发送VerifyAccount XML请求,并且根据发送的信息,我们的系统将验证该帐户,发送未注册的用户错误或无效的帐户错误。 我已经在代码上做了一些工作,我在XML模式中添加了一个元素,并且只有在请求中新创建的元素在xml中被解析时它才起作用。问题是我不想在XML请求中传递该元素,但是如果我排除该元素,则代码无法正常工作。Java/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中新添加的元素是detailedErrorMessage。
的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>[email protected]</UserID>
<Password>password</Password>
</Identification>
<Service>
<ServiceName>AccountVerify</ServiceName>
<ServiceDetail/>
</Service>
</Request>
即该请求,如果detailedErrorMesage元素被添加到该请求作为预期功能工作。我在这段代码中做错了什么?我一直在思考这个问题几天,它正在努力工作!
任何帮助将非常感谢! 谢谢
当前minOccurs设置为0,maxOccurs未设置。我相信它应该设置为1作为默认值? – Sad 2011-06-13 17:22:31