Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / java и xml / 25 сообщений из 36, страница 1 из 2
17.04.2013, 15:07:21
    #38229326
miklouha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
всем привет, ситуация такая, получаю ответ от веб сервиса в виде строки с xml и там вместо кириллицы спецсимволы Оплата в и т.д. Сам вебсервис менять не могу, надо обработать строку так чтобы все было корректно.
Какой есть способ менее ресурсоемкий чем создавать таблицу символов и соответсвий и потом string.replaceall?
...
Рейтинг: 0 / 0
17.04.2013, 15:11:37
    #38229337
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
miklouhaвсем привет, ситуация такая, получаю ответ от веб сервиса в виде строки с xml и там вместо кириллицы спецсимволы Оплата в и т.д. Сам вебсервис менять не могу, надо обработать строку так чтобы все было корректно.
Какой есть способ менее ресурсоемкий чем создавать таблицу символов и соответсвий и потом string.replaceall?
1) Пофиксить чтение HTTP отклика, чтобы читать в правильной кодировке, а не в какой попало.
2) Использовать инструменты работы с XML вместо работы со строкой.
...
Рейтинг: 0 / 0
17.04.2013, 15:13:08
    #38229344
miklouha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
Blazkowicz,

а там все выставил ка кнадо
httpConn.setRequestProperty("Content-Length",String.valueOf(b.length));
httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
, можно пример если не затруднит?
...
Рейтинг: 0 / 0
17.04.2013, 15:15:45
    #38229348
WGA
WGA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
miklouha,

Ссылка
...
Рейтинг: 0 / 0
17.04.2013, 15:17:05
    #38229352
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
miklouhaа там все выставил ка кнадо
httpConn.setRequestProperty("Content-Length",String.valueOf(b.length));
httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");

Это кодировка запроса. Сервер вам присылает ответ в какой-то кодировке. Вы его читаете тоже в какой-то кодировке. К этому коду чтение ответа сервера отношение не имеет.

miklouha, можно пример если не затруднит?
Чего пример?
Взяли бы jaxws, да за 10 минут сварганили клиента по WSDL.
http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/2.0/tutorial/doc/JAXWS.html
...
Рейтинг: 0 / 0
17.04.2013, 15:17:41
    #38229353
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
Blazkowicz http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/2.0/tutorial/doc/JAXWS.html
Ой, не та ссылка. Смотри ответ WGA выше.
...
Рейтинг: 0 / 0
17.04.2013, 15:22:30
    #38229364
miklouha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
WGA,

не совсем то, веб сервис вызывается без JAX-WSи прочих библиотек, делается вот так http://technology.amis.nl/2011/06/29/how-to-call-a-call-a-webservice-directly-from-java-without-webservice-library. Проблема не в вызове вебсервиса, он вызывается и отрабатывает нормально, нужно в обратном полученном потоке вместо спец символов отображать их реальные значения.
...
Рейтинг: 0 / 0
17.04.2013, 15:23:53
    #38229369
miklouha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
Blazkowicz,

мне клиент не нужен, у меня с вебсервисом проблем нет, мне надо заменить спецсимволы.
...
Рейтинг: 0 / 0
17.04.2013, 15:31:48
    #38229393
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
miklouhaWGA,

не совсем то, веб сервис вызывается без JAX-WSи прочих библиотек, делается вот так http://technology.amis.nl/2011/06/29/how-to-call-a-call-a-webservice-directly-from-java-without-webservice-library. Проблема не в вызове вебсервиса, он вызывается и отрабатывает нормально, нужно в обратном полученном потоке вместо спец символов отображать их реальные значения.
Ну, и зачем вы всякой фигней пользуетесь?
Бага вот тут:
Код: java
1.
2.
InputStreamReader isr =
        new InputStreamReader(httpConn.getInputStream());


Вместо той кодировки в которой сервер ответил, ваш код использует текущую системную. Очевидно они разные.
...
Рейтинг: 0 / 0
17.04.2013, 15:32:57
    #38229397
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
miklouhaмне клиент не нужен

Вы же его пишете. Зачем вы его пишете, если он не нужен?

miklouha, у меня с вебсервисом проблем нет,

ОК.

miklouhaмне надо заменить спецсимволы.
Это не "спецсимволы". Это испорченый текст из-за баги в вашем коде.
...
Рейтинг: 0 / 0
17.04.2013, 15:37:57
    #38229413
miklouha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
пишите кто сталкивался с такой проблемой...грубо говоря есть строка xml надо там заменить спец символы...
...
Рейтинг: 0 / 0
17.04.2013, 15:44:08
    #38229434
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
miklouhaпишите кто сталкивался с такой проблемой...грубо говоря есть строка xml надо там заменить спец символы...
Это ты так вежливо послал тех кто тебе пытаеться помочь? Ну, удачи. Разбирайся сам.
...
Рейтинг: 0 / 0
17.04.2013, 16:13:04
    #38229504
miklouha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
извиняюсь если кого обидел, может толком не описал задачу полностью. Попробую еще раз...
Веб сервис работает правильно, и ответ возвращает правильный, но вместо скобок приходят спец символы, а вместо кириллицы Escape-символы. Тут дело не в кодировке, просто веб сервис такой ответ возвращает и мне нужно заменить в тексте спец символы и Escape-символы на то чем они должны быть.
...
Рейтинг: 0 / 0
17.04.2013, 16:18:38
    #38229513
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
Тю. Если последовательности, то вот:
http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringEscapeUtils.html
Но это скользкий путь работы с XML как со строкой.
...
Рейтинг: 0 / 0
17.04.2013, 16:25:50
    #38229532
miklouha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
Blazkowicz,

спасибо, уже скачал...там есть функция StringEscapeUtils.unescapeXml(). Понимаю что скользкий, просто вебсервис не я писал и менять никто не будет...
...
Рейтинг: 0 / 0
17.04.2013, 16:29:27
    #38229542
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
miklouhaBlazkowicz,

спасибо, уже скачал...там есть функция StringEscapeUtils.unescapeXml(). Понимаю что скользкий, просто вебсервис не я писал и менять никто не будет...
При чем тут сервис? Просто если с XML работать через XML API, то вопросов не возникнет. Поэтому решение работать с XML как со строкой немного странное.
...
Рейтинг: 0 / 0
17.04.2013, 16:36:36
    #38229559
miklouha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
Blazkowicz,

даже если xml возвращается в soap конверте? как сам текст xml оттуда вычленить?
...
Рейтинг: 0 / 0
17.04.2013, 16:44:50
    #38229581
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
А между тем, генерация JAX-WS клиента и 10 минут не заняла бы, и спецсимволы автоматом бы распарсились.
А вот с этим "у меня все и так работает, только кодировка какая-то не такая" - до сих пор задача не решена
...
Рейтинг: 0 / 0
17.04.2013, 16:47:51
    #38229587
miklouha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
ivanra,

в этом приложении нельзя использовать этот клиент, задача так стоит...с кодировкой все нормально, просто надо обратно преобразовать escape последовательность. И почему решили что JAX-WS клиент вернет что то другое? он вернет тоже самое не в клиенте дело.
...
Рейтинг: 0 / 0
17.04.2013, 16:49:34
    #38229591
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
miklouhaв этом приложении нельзя использовать этот клиент, задача так стоит...с кодировкой все нормально, просто надо обратно преобразовать escape последовательность. И почему решили что JAX-WS клиент вернет что то другое? он вернет тоже самое не в клиенте дело.
Потому что JAX-WS включает в себя функиции XML парсера и все escape последовательности нормально преобразует в String значения.
...
Рейтинг: 0 / 0
17.04.2013, 16:52:58
    #38229604
miklouha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
Blazkowicz,

сомневаюсь что то...попробовал только что StringEscapeUtils.unescapeXml(s) и преобразовались только escape символы для скобок, кириллические символы так и остались в escape виде.
я раньше использовал этот пакет кстати для другой задачи c сервером приложений bi publisher..сейчас просто именно задача стоит сделать без сторонних пакетов.
...
Рейтинг: 0 / 0
17.04.2013, 16:54:16
    #38229608
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
miklouhaBlazkowicz,

сомневаюсь что то...попробовал только что StringEscapeUtils.unescapeXml(s) и преобразовались только escape символы для скобок, кириллические символы так и остались в escape виде.
я раньше использовал этот пакет кстати для другой задачи c сервером приложений bi publisher..сейчас просто именно задача стоит сделать без сторонних пакетов.
Значит вы нас где-то обманываете с Escape последователностями. Покажите какой текст на входе?
...
Рейтинг: 0 / 0
17.04.2013, 17:01:22
    #38229625
miklouha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
Blazkowicz,

да он походу только для символов скобок и т.д. попробуйте напрмер использовать функцию для создания escape последовательности из обычных символов System.out.println(StringEscapeUtils.escapeXml("sdfsd")) не сработает...
...
Рейтинг: 0 / 0
17.04.2013, 17:01:53
    #38229626
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
miklouhaв этом приложении нельзя использовать этот клиент, задача так стоит...с кодировкой все нормально, просто надо обратно преобразовать escape последовательность. И почему решили что JAX-WS клиент вернет что то другое? он вернет тоже самое не в клиенте дело.
Даже если нельзя использовать JAX-WS (ну, там, протокол связи не тот, библиотека недоступна, какие-то еще причины), то все равно можно воспользоваться сгенерированными классами и десериализовать пришедший поток в эти классы с использованием JAXB. rt.jar, надеюсь, в этом проекте доступна полностью?
...
Рейтинг: 0 / 0
17.04.2013, 17:06:47
    #38229635
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java и xml
miklouhaзадача стоит сделать без сторонних пакетов.
Сторонних относительно чего? JAXWS уже сто лет как в JSE включили. А Apache Common Utils, почему вдруг использовать можно?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / java и xml / 25 сообщений из 36, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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