В процессе переноса моих java приложений из ANT в инструмент Gradle Мое ушное приложение включает в себя jar и war, такие как модуль EJB, веб-модуль и модуль утилит. Я завершил переписывание из сборки. xml в build.gradle
и сборка прошла успешно. ухо также генерируется. Но когда я пытаюсь развернуть в WebSphere, я могу развернуть приложение. Проблема в том, что когда я запускаю приложение в WebSphere, я не могу его запустить. Я получаю сообщение об ошибке ниже.
[1/6/2020 6:22 AM]
[1/6/20 6:20:17:720 EST] 0000009c annotation W com.ibm.ws.webcontainer.annotation.WASAnnotationHelper collectClasses SRVE8000W: Skipped class that failed to initialize for annotation scanning.
java.lang.ClassNotFoundException: com.manulife.pension.heartbeat.servlet.HeartBeatServlet
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:403)
at com.ibm.ws.webcontainer.annotation.WASAnn
Я объявил этот пакет com.manulife.pension.heartbeat.servlet.HeartBeatServlet
как heartbeat.jar
в зависимостях в build.gradle модуля ejb и в build.gradle модуля ear также:
implementation(group: 'heartbeat', name: 'heartbeat', version: '1.0')
Мой heartbeat.jar
добавлен как heartbeat-1.0.jar в Gradle, как мы знаем в Maven и Gradle, эти зависимости добавляются с версиями в именах.
Когда я заменяю heartbeat-1.0.jar
на heartbeat.jar
в развернутом ухе выше ошибка исчезла
Может кто-нибудь помочь мне, как мы можем решить эти проблемы именования для зависимостей? мы должны объявить где-нибудь, потому что проблема наступает во время выполнения !!