powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Struts2/Tomcat и прием сообщения
15 сообщений из 15, страница 1 из 1
Struts2/Tomcat и прием сообщения
    #36998005
Votsenzuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
..заранее прошу прощения за косноязычие, если что не так понял, поправьте:

В проекте необходимо принять сообщение-ответ от сервера (Liqpay), сформированный в виде зашифрованного BASE64 файла XML. т.е. вот что сказано в API:
<quote>
Наш ответ прийдет к вам в закодированном виде, внутри кода находиться XML с ответом. Чтоб раскодировать XML вам необходимо проделать следующую процедуру, пример:

Perl: $xml_decoded=decode_base64($xml);
PHP: $xml_decoded=base64_decode($xml);
После распаковки вы получите XML следующего вида:....
</quote>

структура проекта использует struts2, поэтому, при поступлении сообщения от сервера вызывается action с указанным именем классом. Подскажите пожалуйста, как можно забрать в этом экшене поступающее сообщение?

ЗЫ: раньше приходящее сообщение было сформировано в виде списка параметров, поэтому, обработка таких сообщений не представляла сложность - нужно было только создать соответствующие сеттеры-геттеры имеющихся полей. А сейчас, как я понимаю, сообщение приходит в виде бессвязного набора буквочек, из которых нужно выдернуть XML.
...
Рейтинг: 0 / 0
Struts2/Tomcat и прием сообщения
    #36998039
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VotsenzukВ проекте необходимо принять сообщение-ответ от сервера (Liqpay), сформированный в виде зашифрованного BASE64 файла XMLНе зашифрованного, а "завёрнутого". Commons codec позволяет работать, в том числе, с Base64.
Полученный XML(-поток) надо "скормить" парсеру.
...
Рейтинг: 0 / 0
Struts2/Tomcat и прием сообщения
    #36998309
Votsenzuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как "разворачивать" я умею. Тут вопрос в том, каким образом получить этот поток в экшене? Как мне получить ту заветную строчку, которую нужно раскодировать?
...
Рейтинг: 0 / 0
Struts2/Tomcat и прием сообщения
    #37000167
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VotsenzukТут вопрос в том, каким образом получить этот поток в экшене? Диспетчеризировать ?
...
Рейтинг: 0 / 0
Struts2/Tomcat и прием сообщения
    #37000503
and)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Votsenzuk

А как/чем вы посылаете запрос на сервер Liqpay?
...
Рейтинг: 0 / 0
Struts2/Tomcat и прием сообщения
    #37000799
Votsenzuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovVotsenzukТут вопрос в том, каким образом получить этот поток в экшене? Диспетчеризировать ?

в проекте используется этот механизм. Просто я не досконально понимаю его сущность. Раньше в ответе сервера на запрос в класс проекта (который написан у меня) возвращались значения готовыми параметрами. То есть при приходе ответа сервера у меня вызывается класс, в котором есть сеттеры своих свойств, а парсер вызывает их по мере наличия этих параметров в ответе (я тут ничего не путаю?). А теперь, в новой версии API параметры запакованы BASE64 и естественно не парсятся при получении. Просто я не понимаю, как мне вместо параметров получить строчку?
...
Рейтинг: 0 / 0
Struts2/Tomcat и прием сообщения
    #37000804
Votsenzuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
and)Votsenzuk

А как/чем вы посылаете запрос на сервер Liqpay?

В проекте за это отвечает связка соотв. класса и странички JSP с формированием запроса. Вот только не пойму как это влияет на ПРИЕМ ответа?
...
Рейтинг: 0 / 0
Struts2/Tomcat и прием сообщения
    #37000880
and)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Votsenzuk,

может там через httpClient, отправил запрос, получил responseInputStream, считал из него xml
...
Рейтинг: 0 / 0
Struts2/Tomcat и прием сообщения
    #37000891
and)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или аналогично получил request через ServletRequestAware -> request.getInputStream(); -> parse -> xml
...
Рейтинг: 0 / 0
Struts2/Tomcat и прием сообщения
    #37008567
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VotsenzukПросто я не понимаю, как мне вместо параметров получить строчку?И что мешает развернуть в вашем классе BASE64 в то, что было раньше?
...
Рейтинг: 0 / 0
Struts2/Tomcat и прием сообщения
    #37039887
Votsenzuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо откликнувшимся! Расскажу чем дело кончилось.
С HttpServletRequest/response ничего не получилось :(. Параметры, как и собственно искомые строчки приходящего пакета я так и не увидел. getInputStream ничего не дал, возвращаются только параметры запроса, но что внутри него - неясно. Дело закончилось тем, что какой-то сочувствующий человек выложил на форуме сервера имя параметра, который передается в ответе. В мануале его, конечно, не было. Поэтому, непонятно было с чем бороться. С именем параметра стало намного легче, в итоге все получилось.

ЗЫ: не буду создавать другой темы, помогите, пожалуйста, с таким преобразованием:

String decoded = Base64.decode(coded).toString;

Вроде как все красиво - берется строка coded, декодируется, метод возвращает bytes[], который тут же обращается в ".toString". Только вот волшебства не происходит - в decoded получается не строка, а черт знает что! Если же сделать побайтное преобразование того, что отдает метод decode в символы строки, то все нормально... Но как-то ведь можно это сделать одной строкой? Помогите разобраться чайнику :)
...
Рейтинг: 0 / 0
Struts2/Tomcat и прием сообщения
    #37041540
pasha701
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VotsenzukНо как-то ведь можно это сделать одной строкой? Помогите разобраться чайнику :)
Код: plaintext
1.
2.
3.
4.
Constructor Summary
...
String( byte [] bytes, String charsetName) 
Constructs a  new  String by decoding the specified array of bytes using the specified charset.
Если знать кодировку XML, то:
Код: plaintext
1.
String decoded =  new  String (Base64.decode(coded),"Yours encoding");
Иначе - парсить.
...
Рейтинг: 0 / 0
Struts2/Tomcat и прием сообщения
    #37041781
Votsenzuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pasha701Если знать кодировку XML, то:
Код: plaintext
1.
String decoded =  new  String (Base64.decode(coded),"Yours encoding");


Спасибо! Получилось!
ЗЫ: пошел изучать как парсить структуру XML. Верю, что в java найдется что-то и для нее, т.к. разбирать вручную (поиском начала и окончания тега, как у меня это делается сейчас) опять же - "некрасиво" :).
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Struts2/Tomcat и прием сообщения
    #38512059
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Struts2/Tomcat и прием сообщения
    #38512061
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsov,
Блин, что-то я в некроманты похоже записался
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Struts2/Tomcat и прием сообщения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]