JMS зависимость не разрешена? - PullRequest
0 голосов
/ 30 ноября 2018

Привет, я создал один файл docker-compose.yml в виде нижеуказанной конфигурации.

version: '3'
services:
  activemq:
    image: webcenter/activemq:latest
    ports:
      - 8161:8161
      - 61616:61616
      - 61613:61613
    environment:
      ACTIVEMQ_NAME: amq
      ACTIVEMQ_REMOVE_DEFAULT_ACCOUNT: 'True'
      ACTIVEMQ_ADMIN_LOGIN: admin
      ACTIVEMQ_ADMIN_PASSWORD: admin
    volumes:
      - /container_data/activemq/data:/data/activemq
      - /container_data/activemq/log:/var/log/activemq

У меня есть конфигурация gradle, как указано ниже:

task startDocker(type: Exec) {
    if (Os.isFamily(Os.FAMILY_WINDOWS)) {
        commandLine 'cmd', '/c', 'docker-compose', '-f', './docker-compose.yml', 'up', '-d'
    } else {
        commandLine 'docker-compose', '-f', './docker-compose.yml', 'up', '-d'
    }
}

jar  {
    manifest {
        attributes 'Implementation-Title': 'Gradle Jar File Example',
                'Implementation-Version': version,
                'Main-Class': 'com.jms.MyServer'
    }
}

, когда я запускаю свое приложение Java независимоон работает нормально, так как я использую конфигурацию из следующей команды:

docker container inspect <container-id>

, но когда я запускаю файл jar , он не может найти классы jms

следующее - это ошибка, которую я получаю при запуске с использованием jar

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: javax/jms/Destination
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)

Как мне запустить jar-файл и устранить эту ошибку?

1 Ответ

0 голосов
/ 30 ноября 2018

Я предполагаю, что у вас есть jms-зависимости, которые не упакованы в ваш jar-файл, поэтому его нельзя запускать как отдельный.

Если вы хотите упаковать свои зависимости в свой кувшин, вы можете использовать что-то вроде shadow или one-jar или его также нетрудно свернуть вручную.,

Другой вариант - использовать плагин приложения для создания zip или tar-файла, содержащего

  1. ваш jar
  2. jars зависимости
  3. скрипт запуска
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...