URL-адреса конечных точек веб-службы EJB изменились при обновлении с Glassfish 3.0 до Glassfish 3.1.2.

Команда разработчиков, с которой я сейчас работаю, планирует обновить серверное приложение Glassfish, работающее на сервере, с версии 3.0 (Sun Glassfish) до версии 3.1.2 (Oracle Glassfish) и столкнулась с проблемой, связанной с изменением URL-адресов конечных точек веб-службы EJB. от:

http://serverip:port/PROJECT_NAME/primeRequestTTService

To:

http://serverip:port/primeRequestTTService/primeRequestTT

Через несколько дней гугления я обнаружил, что последний URL-адрес в настоящее время является стандартной конструкцией конечной точки EJB, в то время как я ничего не нашел в первой, я предполагаю, что это был нестандартный метод Sun Glassfish для построения URL-адресов конечной точки.

Фрагмент кода, как показано ниже:

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

@WebService(serviceName = "primeRequestTTService", portName = "primeRequestTTSoap", wsdlLocation = "WEB-INF/wsdl/primeRequestTT/primeListTT.wsdl")
@Stateless
public class primeRequestTT {
    @EJB

Я попытался установить PROJECT_NAME как атрибут serviceName, но вместо этого получил http://serverip:port/PROJECT_NAME/primeRequestTT.

Вопрос: Помимо изменения имен всех классов веб-сервисов EJB, чтобы они имели префиксы «Сервис», как мне изменить этот проект приложения веб-сервиса, чтобы сохранить предыдущую конструкцию конечной точки, пока я обновляю Glassfish до версии 3.1? .2? Я ищу решение типа "файл конфигурации". Я уже пробовал glassfish-web.xml и не работает.


person Lukman    schedule 26.08.2014    source источник


Ответы (1)


Лукман,

Вы должны включить параметр name в аннотацию @WebService:

@WebService(serviceName = "primeRequestTTService", portName = "primeRequestTTSoap", name= "primeRequestTT")

Итак, ваш результат будет следующим:

http://localhost:8080/primeRequestTTService/primeRequestTT
person Pejal Hebat    schedule 26.08.2014
comment
Итак, чтобы получить URL = serverip:port/PROJECT_NAME/primeRequestTTService, как в вопросе, я должен установить serviceName = PROJECT_NAME и имя = PrimeRequestTTService? Сейчас попробую.. - person Lukman; 26.08.2014
comment
Хорошо, это работает. Спасибо! Но есть ли решение, которое не требует редактирования аннотации класса в каждом файле? Что-то вроде файла конфигурации XML.. - person Lukman; 26.08.2014