Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Простейший веб-сервис через EJB


Автор: serious 30.4.2008, 11:37
Есть такой код:

Код

package test.ws;

import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import java.rmi.Remote;
import java.rmi.RemoteException;

@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface AdditionService extends Remote {

    public Integer add(Integer summand1, Integer summand2) throws RemoteException;
}
    

Код

package test.ws;

import javax.ejb.Stateless;
import javax.ejb.Remote;
import javax.jws.WebService;

@Stateless
@WebService(endpointInterface = "test.ws.AdditionService")
@Remote(AdditionService.class)
public class AdditionServiceBean implements AdditionService {

    public Integer add(Integer summand1, Integer summand2) {
        return (summand1 == null || summand2 == null) ? 0 : summand1 + summand2;
    }
}


Запускаю под Geronimo, в логах пишет:
Код

INFO: Creating Service {http://ws.test/}AdditionServiceBeanService from class test.ws.AdditionService
    

По какому адресу обращаться к веб-сервису?

Автор: serious 30.4.2008, 14:21
Немного изменил пример, теперь при обращении по адресу http://localhost:8080/CalculatorService/Calculator?WSDL Geronimo показывает сообщение "Hi, I'm CalculatorService web service!"

Код выглядит так:

Код

package test;

public interface ICalculator {

    public int add(int summand1, int summand2);
}



Код

package test;

import javax.ejb.Stateless;
import javax.jws.WebService;

@Stateless
@WebService
public class Calculator implements ICalculator {

    public Calculator() {

    }

    public int add(int summand1, int summand2) {
        return summand1 + summand2;
    }
}


Но теперь возникает проблема:
Код

@WebServiceRef(wsdlLocation = "http://localhost:8080/CalculatorService/Calculator?WSDL")
private static ICalculator calculator;


не работает. Как я понял, для dependency injection нужен сгенерированный класс CalculatorService, через который в дальнейшем будет получться прокси класса Calculator. Как его сгенерировать и можно ли обойтись без этой генерации?

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