URLConnection.getInputStream возвращает значение null

Я использую Java 6 для отправки XML-данных на сервер.

Метод writeToURL из класса XMLWriter использует URLConnection для отправки данных XML в мою веб-службу. XML успешно передан и сохранен в базе данных, но вместо того, чтобы получить ответ, упомянутый ниже, я получаю только null. Также не возникает никаких исключений.

В результате должен получиться следующий XML или содержащий его InputStream:

<?xml version="1.0" encoding="UTF-8"?>
<message>
    <type>response</type>
    <messageID>k17436fxOD3y1ywhCX48</messageID>
    <status>successful</status>
</message>

or

<?xml version="1.0" encoding="UTF-8"?>
<message>
    <type>response</type>
    <messageID>k17436fxOD3y1ywhCX48</messageID>
    <status>alreadyExisting</status>
</message>

Полный код класса XML можно найти здесь.
Веб-сервис работает по этому адресу: http://wafriv.de/tatoo_webservice/index.php
Образец XML для отправки в веб-службу можно найти на http://paste.geekosphere.org/p5bf< /а>

Любая помощь будет оценена по достоинству.

[edit]
Код, с которым у меня возникли проблемы, — это метод writeToURL из моего XMLWriter.
Вот он:

try
{
    URL url = new URL(urlString);
    URLConnection connection = url.openConnection();
    connection.setUseCaches(false);
    connection.setDoOutput(true);
    connection.setRequestProperty("accept-charset", charset);
    connection.setRequestProperty("content-type", "application/x-www-form-urlencoded");
    String query = "";

    if (additionalParams != null)
    {
        for (Map.Entry<String, Object> entry : additionalParams.entrySet()) {
            String key = entry.getKey();
            Object value = entry.getValue();
            query += String.format("%s=%s&", URLEncoder.encode(key, charset), URLEncoder.encode(value.toString(), charset));
        }
    }

    TransformerFactory transFactory = TransformerFactory.newInstance();
    Transformer transformer = transFactory.newTransformer();
    DOMSource source = new DOMSource(this.document);
    StringWriter sw = new StringWriter();
    StreamResult result = new StreamResult(sw);
    transformer.transform(source, result);

    query += String.format("%s=%s", URLEncoder.encode("message", charset), URLEncoder.encode(sw.toString(), charset));

    OutputStreamWriter writer = null;
    InputStream response;
    try
    {
        writer = new OutputStreamWriter(connection.getOutputStream(), charset);
        writer.write(query); // Write POST query string (if any needed).
    }
    finally
    {
        if (writer != null)
        {
            try
            {
                writer.close();
            }
            catch (IOException ex)
            {
                this.exceptionList.add(ex);
            }
        }
    }

    response = connection.getInputStream();

    return response;
}
catch (TransformerConfigurationException ex)
{
    this.exceptionList.add(ex);
}
catch (TransformerException ex)
{
    this.exceptionList.add(ex);
}
catch (MalformedURLException ex)
{
    this.exceptionList.add(ex);
}
catch (IOException ex)
{
    this.exceptionList.add(ex);
}
    catch (Exception ex)
{
    this.exceptionList.add(ex);
}
finally
{
    this.printExceptions();
    return null;
}

person Neithan    schedule 13.08.2012    source источник
comment
Пожалуйста, покажите код Java, с которым у вас возникли проблемы.   -  person Stephan    schedule 13.08.2012
comment
Я добавил код. Его также можно найти на paste.geekosphere.org/qxwb, как я уже упоминал выше.   -  person Neithan    schedule 13.08.2012
comment
Проблема решена. Наконец, метод writeToURL возвращает значение null.   -  person Neithan    schedule 16.08.2012


Ответы (1)


Проблема решена. finally заставил метод writeToURL вернуть значение null.

person Neithan    schedule 01.03.2013