Медленное развертывание из NetBeans 11.3 в Payara4 / 5 из-за места назначения JMS? - PullRequest
1 голос
/ 24 апреля 2020

Этот вопрос касается разработки J2EE с NetBeans / Payara.

Поскольку с использованием NetBeans 11.3 развертывание моего EAR-проекта на payara действительно происходит медленно.

Проблема:

У меня в EJB-модуле около 20 bean-компонентов, управляемых сообщениями, и для каждого из них во время развертывания в консоль записывается следующий вывод:

End point determines destination name, Res name: javax.jms.Queue, JNDI name: java:global/jms/<queuename>
    descriptor name : <MDB-Name>|#]

Это было бы нормально для меня, если не в каждом случае такой линии, развертывание занимает несколько секунд, поэтому длительность развертывания составляет около 120 с. Это должно быть около 10 секунд.

Настройка:

В NetBeans 8.2 и payara 4.1.x все было в порядке.

Затем я обновился до NetBeans 11.3 -> Медленное поведение.

Затем я обновился до payara 5.201 -> Там это работало несколько раз как чудо, но на следующий день: опять же, очень медленное развертывание. Я действительно понятия не имею, почему.

Запуск на Win 10, JDK 1.8

Сообщения помещаются в очередь как:

@Stateless
public class MyMessageSource {

    @Inject
    JMSContext context;

    @Resource(mappedName = "java:module/jms/customeredited")
    private Queue customerEdited;
    ...

    private void sendToJMSQueue(Serializable container, Queue queue) {
        context.createProducer().send(queue, container);
    }
}

MDB выглядит например:

@JMSDestinationDefinition(name = "java:module/jms/customeredited", 
        interfaceName = "javax.jms.Queue", 
        resourceAdapter = "jmsra", 
        destinationName = "customeredited")
@MessageDriven(mappedName = "java:module/jms/customeredited")
public class CustomerEditedHandler implements MessageListener {

    @EJB //Also tried @Inject
    private SomeService ...;

    public CustomerEditedHandler() {
    }

    @Override
    public void onMessage(Message message) {
       //...do things...
    }

Я пробовал некоторые настройки в свойствах проекта, например, в Build -> Compile.

Я пробовал разные конфигурации @JMSDestinationDefinition, @MessageDriven и в MyMessageSource я нашел около Inte rnet, но ничего не помогло.

Я также пытался заменить @EJB throught @ Inject.

У кого-нибудь есть какие-нибудь идеи или советы для меня?

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать!

С уважением, Стефан

1 Ответ

0 голосов
/ 27 апреля 2020

Я решил проблему самостоятельно. Если кому-то все равно, в чем проблема:

Это не проблема NetBeans, Payara или J2EE. Это было вызвано VPN-подключением к нашей компании, которое я использовал, чтобы я мог работать в домашнем офисе. Я предполагаю, что сервер делал хороший обход через inte rnet и обратно, чтобы заметить, что порт 7676 (JMS-порт) работает на локальной машине.

Holy cow.

Теперь я должен найти обходной путь для этого ...

С уважением, Стефан

...