Инструменты разработчика WebSphere Application Server для Eclipse: веб-службы не опубликованы
Я использую eclipse Mars, IBM WebSphere Application Server 8.5 для разработчиков и использую плагин WAS 8.5 Developer Tools для Eclipse.
Когда я щелкаю правой кнопкой мыши свой проект уха в eclipse и выбираю запуск своего приложения, приложение публикуется и разворачивается на сервере, но веб-службы не публикуются. В веб-сфере я знаю, что для публикации своих веб-сервисов я должен запустить endPtEnabler над моим файлом ear перед установкой на сервер, чтобы изменить файл ear и добавить необходимые артефакты websphere для веб-сервисов.
В качестве обходного пути на данный момент мне пришлось сгенерировать ear и применить endPtEnabler в цикле установки maven, и я написал сценарий jython, который будет использоваться в конфигурации запуска eclipse для установки / обновления приложения, однако это болезненно делать при каждом изменении поскольку изменения развернуты не в горячем режиме, мне пришлось установить ear и запустить скрипт jython.
Есть ли способ настроить плагин Eclipse для публикации веб-сервисов непосредственно при запуске приложения через Eclipse?
ОБНОВЛЕНИЕ 1:
Класс обслуживания:
package com.home.da.services.mq.simulators;
import static com.home.core.common.constants.ConstantValues.*;
import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.jms.Queue;
import javax.jws.WebService;
import com.home.core.mq.xml.bind.bill.req.SendSystemNotificationRequest;
import com.home.da.services.mq.MQAccessorLocal;
@WebService(serviceName="ReceiveTransactionService",
endpointInterface = "com.home.da.services.mq.simulators.ReceiveTransaction",
portName = "ReceiveTransactionPort",
targetNamespace = "http://home.com/BILL")
@Stateless
public class ReceiveTransactionWS implements ReceiveTransaction{
@EJB
private MQAccessorLocal mqAccessorLocal;
@Override
public void sendTransaction(SendSystemNotificationRequest trx) {
mqAccessorLocal.sendMQMessage(Boolean.FALSE, trx, "com.home.core.mq.xml.bind.bill.req", null, JNDI_NOTF_BILL_SYS_REQ, null, null, null, "999999999");
}
}
SEI:
package com.home.da.services.mq.simulators;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import com.home.core.mq.xml.bind.bill.req.SendSystemNotificationRequest;
@WebService(name = "ReceiveTransaction", targetNamespace = "http://home.com/BILL")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.WRAPPED,
use = SOAPBinding.Use.LITERAL,
style = SOAPBinding.Style.DOCUMENT)
public interface ReceiveTransaction {
public void sendTransaction(SendSystemNotificationRequest trx);
}
Контекст файла:
1 ответ
Посмотрите на [Классический WebSphere Application Server] раздел Создание модулей маршрутизатора в разделе разработки IBM WebSphere Developer Tools для разработки веб-сервисов. Дополнительную информацию о мастере создания модулей маршрутизатора (который ранее назывался Endpoint Enabler) можно найти в разделе " Создание модулей маршрутизатора веб-службы".