2013-07-28 6 views
0

Здесь я пытаюсь кодировать данные входной формы. Есть два варианта, и я попытался их обоих:? Вы забыли наследовать необходимый модуль 'Альтернативы для кодирования URL

  1. Используйте URLencoder.encode(inputString) метод, который не работает на стороне клиента GWT (Мой код находится в клиентском модуле) Результаты по ошибке
  2. URL.encodeQueryString(inputString), который работает хорошо, но когда я запускаю соответствующие тестовые случаи с помощью JUnit, все это я получаю unsatisfiedlinkederror

Существует ли какие-либо альтернативы для способа кодирования или есть какая-либо работа вокруг упомянутых выше методов?

ответ

1

Для вашего второго варианта: GWT использует модули и их необходимо скомпилировать, что отличается от простого простого теста JUnit. Взгляните на http://www.gwtproject.org/doc/latest/DevGuideTesting.html, они объясняют, как настроить JUnit-тест.

+0

Спасибо! Я попробую. – Jayesh

0

Для URL здания, я использую "UrlBuilder": com.google.gwt.http.client.UrlBuilder

UrlBuilder u = new UrlBuilder(); 
u.setProtocol("https"); 
u.setHost("www.mysite.com:8080"); 
u.setPath("/myServletPath"); 
u.setParameter("username", nameField.getValue()); 
u.setParameter("someAttribute", "itsValue"); 
u.buildString(); 

Этот код приведет: https://www.mysite.com:8080/myServlet?username=GWT%20User&someAttribute=itsValue

+0

Кажется, что UrlBuilder внутренне использует URL.encodeQueryString() для кодирования данной строки. Когда я попытался с ним, он выбросил ту же ошибку «UnsatisfiedLinkError из-за URL.EncodeImpl» – Jayesh

+0

Привет @Jayesh, 'com.google.gwt.http.client.UrlBuilder' предназначен для использования с клиентской стороной GWT. Я также использую его в клиентской части проекта GWT и могу подтвердить, что он работает. [Я сделал некоторые исследования] (https://groups.google.com/d/topic/google-web-toolkit/TtO-22bN7dA/discussion), и кажется, что 'UnsatisfiedLinkError' происходит, когда вы вызываете его со стороны сервера. Посмотрите на трассировку стека для своей ошибки и убедитесь, что она не вызывается со стороны сервера. – Churro

+0

Проблема - один из моих модулей, где я использую эту функцию, находится на стороне сервера. Именно по этой причине я не могу переходить с клиентской стороны на сервер. То же самое с функцией URLEncoder.encode(), которой управляет Java. Он построен для работы на стороне сервера. Когда я использую эту функцию на стороне клиента, он говорит: «Вы забыли наследовать необходимый модуль?» хотя я добавляю все необходимые зависимости в файле * .gwt.xml. – Jayesh

Смежные вопросы