Я пытаюсь перенести приложение Blackberry с OS 6 на OS 7 (мое приложение в настоящее время работает на OS 6). Теоретически это не должно вызывать никаких проблем, но я нашел проблему, которую до сих пор не могу решить. При выполнении вызовов к веб-службам (SOAP) я настраиваю HttpMessages на использование метода POST, но когда вызов выполняется, он поступает на сервер в виде GET. Это большая проблема для меня, потому что сервер, с которым я работаю, не поддерживает GET (всегда приводит к «Http 500 error»). Эта проблема не возникает на симуляторе, только на устройстве.
Знаете ли вы какой-нибудь способ для этого? Это проблема с версией ОС? (См. Ниже код, который я использую).
Устройство
Модель: Bold 9930
Перевозчик: Sprint
ОС: 7.0 Bundle 1296 (v7.0.0.241, платформа 5.0.0.442)
Симулятор (со стороны симулятора у меня нет проблем)
Модель: Bold 9930
ОС: 7.0 Bundle 1962 (v7.0.0.440, Sept_24_2011_signed, платформа 4.0.0.141)
public void run() {
context.setEnableBtnsend(false);
BlockingSenderDestination blockSendDest = null;
try {
URI uri = URI.create(URL_BASE);
blockSendDest
= (BlockingSenderDestination) DestinationFactory.getSenderDestination(
senderContext.getName(), uri);
if (blockSendDest == null) {
blockSendDest = DestinationFactory.createBlockingSenderDestination(
senderContext, uri);
}
ByteMessage requestMessage = blockSendDest.createByteMessage();
requestMessage.setTransportHeader("Content-Type", "text/xml;charset=UTF-8");
requestMessage.setTransportHeader("SOAPAction", "\"\"");
// getBodyRequest() -> Insert SOAP request, works fine, was tested on SOAP UI
requestMessage.setStringPayload(getBodyRequest());
((HttpMessage) requestMessage).setMethod(HttpMessage.POST);
blockSendDest.resume();
Message response = blockSendDest.sendReceive(requestMessage);
if (response != null) {
procesMessageResponse(response);
}
// ...
}
catch (Exception ex) {
handleException(ex);
}