Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Запуск клинета web сервиса


Автор: chaos 17.4.2009, 11:50
День добрый!
Играюсь(изучаю) тут веб сервисы smile
как уже пиал где-то выше что простой сервис получилось собрать и даже запустить клиента.
использую GlassFish2
для запуска использую команду вида
Код

 /home/chaos/glassfish-v2.1/bin/appclient Test


если запускать как обычно
Код

java Test

выскакивает эзепшн java.lang.NullPointerException

Вопрос: как зпускать клиентскую часть приложения на обычных(не девелоперских и тп) компах?


Заранее благодарен!

ЗЫ Извиняюсь что вопросы настолько.....

Автор: Zlatogorov 17.4.2009, 12:09
Если сервис писан подf AXIS2 , то в клиенте создаём RPCServiceClient и конфигурируем ему EndpointReference и вызываем метод.
Типа :
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
options.setAction("имя метода");

EndpointReference targetEPR = new EndpointReference(url);
options.setTo(targetEPR);
QName opmethod = new QName(tns, "имя метода");
Object response[] = serviceClient.invokeBlocking(opmethod, params,DynamischerWebservice.getClassArray(out[1]));

Автор: chaos 17.4.2009, 12:46
Zlatogorov, а если с использованием JWSDP


вот такой у меня код клиента + сгенерированные классы по WSDL'ке
Код

import javax.xml.ws.WebServiceRef;
import endpoint.HelloService;
import endpoint.Hello;

public class Test {
    @WebServiceRef(wsdlLocation="http://localhost:8080/Hello/HelloService?WSDL")
    static HelloService service;

    public static void main(String[] args) {
    Test client = new Test();
    client.doHello();
    }

    public void doHello() {
    try {
        Hello port = service.getHelloPort();
        String ret = port.getHello(System.getProperty("user.name"));
        System.out.println("Hello result = " + ret);
    }
    catch(Exception e) {
        e.printStackTrace();
    }
    }
}

Автор: Zlatogorov 17.4.2009, 13:05
Так тяжело сказать что конкретно не работет. Запрос вобще доходит до сервиса или нет? Кто конкретно выбрасывет исключение - тест или сгенерированные скелетоны?

Автор: NeoNYura 17.4.2009, 13:55
Возможно AXIS2 библиотеки не видны.

Автор: ivg 17.4.2009, 14:13
Я бы попробовал в начале main(){...} написать:
Код

    service = new HelloService();
 ну или как там он инициализируется...

Автор: chaos 17.4.2009, 14:22
Цитата(NeoNYura @ 17.4.2009,  10:55)
Возможно AXIS2 библиотеки не видны.

могу сказать глупость smile просерить щас просто не могу: JWSDP юзает AXIS(2) ?

Автор: Zlatogorov 17.4.2009, 14:33
AXIS это AXIS, JWSDP это JWSDP;
Значит в клиенте должны быть библиотеки от него. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)