Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GWT+JAX-WS, Проблемы при создании веб сервиса 
:(
    Опции темы
relic777
Дата 26.9.2011, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.6.2011

Репутация: нет
Всего: нет



Здравствуйте уважаемые эксперты!
  Я новичёк в Java. Старательно изучаю все что с этим связано.  Постараюсь кратко описать суть своей задачи и что я использую.
Итак, использую следующее:
  • Eclipse.
  • GWT
  • JAX-WS

Задача:  Создать веб сервис используя GWT, а затем функции авторизации(возвращающая токен авторизации, чтобы пользователь смог войти в систему по токену) и регистрации с JAX-WS.
 
Что сделано: 
  • С помощью GWT, создал проект, где присутствуют форма регистрации и авторизации с необходимыми полями и главная страница с переходами. Соответственно 3 странички.
  • Создал новый модуль, где и решил разместить функции авторизации и регистрации с помощью JAX-WS.
  • Написал код, скомпилил необходимые классы с помощью wsimport.
Все бы хорошо, НО. На стороне клиента функции весьма ограничены, как я для себя открыл. Например библиотека  java.net не разрешена. Посоветуйте что делать, что почитать(желателньо с примерами). Может кто то напишет пример кода здесь и ткнет пальцем, в каком направлении идти дальше. Спасибо заранее.

PM MAIL   Вверх
Samotnik
Дата 26.9.2011, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



relic777, Gwt - это клиентский язык. Т.е. код, который написан на Java из пакета client транслируется в JavaScript. Именно по этому там и нету пакета java.net и всех остальных, кроме java.lang и коллекций. Но, в gwt можно создать еще пакет shared и server. Вот в server ты можешь использовать всё, что угодно.
Но, gwt, как я уже сказал - это клиентский язык. Поэтому, традиционно веб сервисы на нём не пишут  smile  На нём пишут клиентское представление. А папка server используется в основном для GWT-RPC.
 
PM MAIL   Вверх
relic777
Дата 27.9.2011, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.6.2011

Репутация: нет
Всего: нет



Цитата(Samotnik @ 26.9.2011,  22:51)
relic777, Gwt - это клиентский язык. Т.е. код, который написан на Java из пакета client транслируется в JavaScript. Именно по этому там и нету пакета java.net и всех остальных, кроме java.lang и коллекций. Но, в gwt можно создать еще пакет shared и server. Вот в server ты можешь использовать всё, что угодно.
Но, gwt, как я уже сказал - это клиентский язык. Поэтому, традиционно веб сервисы на нём не пишут  smile  На нём пишут клиентское представление. А папка server используется в основном для GWT-RPC.

Спасибо, с этим я разобрался)
Загвоздка в Jax-ws и способе передачи данных с форм. Мне посоветовали JAX-RS и JSON. Пока не могу разобраться. Вообще, еще до этого, я написал код, где я назначаю хедеры, но он не подходит, опять же из за того, что java.net не получится использовать.
Код

package Reg.client;

import java.net.URL;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import javax.xml.namespace.QName;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.Service;
import javax.xml.ws.handler.MessageContext;
   
import Reg.server.Reg;

public class RegClient{
  
    private static final String WS_URL = "http://localhost:9999/reg?wsdl";
 
    public void PostF(String email, String pas1, String pas2, String org, String name, String famil) throws Exception
    {
        URL url = new URL(WS_URL);
        QName qname = new QName("http://server/", "RegImplService");
        Service service = Service.create(url, qname);
        Reg reg = service.getPort(Reg.class);
        /*******************Headers******************************/
        Map<String, Object> req_ctx = ((BindingProvider)reg).getRequestContext();
        req_ctx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, WS_URL);
 
        Map<String, List<String>> headers = new HashMap<String, List<String>>();
        headers.put("email", Collections.singletonList(email));
        headers.put("pas1", Collections.singletonList(pas1));
        headers.put("pas2", Collections.singletonList(pas2));
        headers.put("org", Collections.singletonList(org));
        headers.put("name", Collections.singletonList(name));
        headers.put("famil", Collections.singletonList(famil));        
        req_ctx.put(MessageContext.HTTP_REQUEST_HEADERS, headers);
        /********************************************************/    
        System.out.println(reg.getRegAsString());
    }
    
    public static void main(String[] args) throws Exception {
 
    }
}

 
PM MAIL   Вверх
Samotnik
Дата 27.9.2011, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



relic777, Давай ещё раз. 
На GWT - тебе лучше писать не веб сервис, а клиента к веб сервису. 
Писать веб сервис в твоём случае нужно на jax-ws. Как писать веб сервис на jax-ws в этом разделе, уже сотню раз писали, поищи, кстати вот буквально соседняя тема.
А вот когда ты будешь делать клиента к веб сервису, вот тогда gwt ты сможешь применить. 
PM MAIL   Вверх
relic777
Дата 27.9.2011, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.6.2011

Репутация: нет
Всего: нет



Цитата(Samotnik @ 27.9.2011,  10:29)
relic777, Давай ещё раз. 
На GWT - тебе лучше писать не веб сервис, а клиента к веб сервису. 
Писать веб сервис в твоём случае нужно на jax-ws. Как писать веб сервис на jax-ws в этом разделе, уже сотню раз писали, поищи, кстати вот буквально соседняя тема.
А вот когда ты будешь делать клиента к веб сервису, вот тогда gwt ты сможешь применить.

Я понял, о чем вы хотите мне сказать. Спасибо.
Только речь же идет о создании веб сервиса, использующий JAX-WS(RS) и JSON. Я совсем пока не понимаю, как его реализовать, с чего начать. Нигде не могу найти основ...
Нашел интересный пример, пытаюсь разобраться: http://www.webservicex.net/stockquote.asmx?op=GetQuote
Про GWT мне сейчас ничего не надо. Я понимаю, что сторона клиента ограничена, но ведь заголовки я не на стороне сервера должен назначать.
PM MAIL   Вверх
Samotnik
Дата 27.9.2011, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



http://jax-ws-commons.java.net/json/
http://www.subbu.org/blog/2006/08/jax-ws-f...ul-web-services

Ну и как я уже сказал по форуму поищите 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.