Использование отправки scala, получение ошибки, связанной с сетью [duplicate]

Реализации шаблонов не видны.

Неспециализированные шаблоны должны иметь свои определения для всех единиц перевода, которые их используют. Это означает, что вы не можете отделить определение шаблона к файлу реализации. Если вы должны отделить реализацию, обычным обходным решением является наличие файла impl, который вы укажете в конце заголовка, объявляющего шаблон. Общей ситуацией является:

template
struct X
{
    void foo();
};

int main()
{
    X x;
    x.foo();
}

//differentImplementationFile.cpp
template
void X::foo()
{
}

Чтобы исправить это, вы должны перенести определение X::foo в файл заголовка или какое-либо место, видимое для единицы перевода, которая его использует.

Специализированные шаблоны могут быть реализованы в файле реализации, и реализация не должна быть видимой, но специализация должна быть предварительно объявлена.

Для дальнейшего объяснения и другого возможного решения (явное создание экземпляра) см. этот вопрос и ответ .

139
задан James Dunn 18 September 2013 в 17:41
поделиться

10 ответов

Удаляет каталог .m2 и:

mvn install -DskipTests -T 4 решил эту проблему для меня.

-3
ответ дан fandro 26 August 2018 в 06:35
поделиться

Для меня это оказалось проблемой Eclipse / Maven после переключения с log4j на logback. Посмотрите на свой файл .classpath и найдите строку "log4j".

В моем случае у меня было следующее: <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.7.1/slf4j-log4j12-1.7.1.jar"/> <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.17/log4j-1.2.17.jar" />

Удаление этих записей из файла (или вы можете его восстановить) исправил проблему.

0
ответ дан helmy 26 August 2018 в 06:35
поделиться

Gradle version;

configurations.all {
    exclude module: 'slf4j-log4j12'
}
36
ответ дан mass 26 August 2018 в 06:35
поделиться

Этот вопрос занял у меня целый день. Наконец я решил использовать не очень хороший трюк. Просто поставьте одну из приведенных ниже зависимостей maven в самом начале вашего файла pom.xml. Используйте любой файл file.slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar или logback-classic.jar, он должен выполнить эту работу. Обратите внимание: используйте последние банки из maven. Вот ссылка !. Это хорошо читать. Чтобы понять, что вам нужно удалить баны slf4j, созданные в локальном репозитории (в моей папке с именем «.m2») и запустить ваш проект как Maven clean и установить Maven и посмотреть все загружаемые maven-банки. И вы поймете, как JVM выбирает последнюю (банку) для нашей программы. Чтобы понять далее, пожалуйста, удалите зависимость POM из файла pom.xml и снова перейдите в локальный репозиторий и удалите все банеры SLF4J и запустите проект, как Maven clean и maven install, и заставит вас следить за загрузками, которые происходит через maven, а затем запускает ваше приложение, чтобы увидеть аффект. Вы можете заметить, что ошибка или исключение не будут влиять на размещение или упоминание зависимости в начале, поскольку это связано с тем, что JVM рассматривает первый барабан в нашем проекте. Но это нехороший ход. Я бы сказал, использование исключения в api или jars, где вы обнаружите, что конкретный api загружает банку slf4j. Что-то я заметил, несколько банок (например: аннотации спящего режима и т. Д.) Загружают slf4j, когда мы создаем проект maven. И именно по этой причине в наш проект вводят несколько контейнеров slf4j. Надеюсь, это поможет. Это мой опыт.

-3
ответ дан MKod 26 August 2018 в 06:35
поделиться

Просто используйте только требуемую зависимость, не все :))). Для меня, для нормальной работы процесса регистрации вам нужна эта зависимость, исключая других из pom.xml

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.5</version>
    </dependency>

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.1.8</version>
    </dependency>

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.1.8</version>
    </dependency>
1
ответ дан Musa 26 August 2018 в 06:35
поделиться

... org.codehaus.mojo cobertura-maven-plugin 2.7 test ch.qos.logback logback-classic tools com.sun ...

## Я исправил это

... org.codehaus.mojo cobertura-maven-plugin 2.7 test ch.qos.logback logback-классические инструменты com.sun ...

1
ответ дан pradeep charan jadi 26 August 2018 в 06:35
поделиться

Версия Sbt:

Добавить exclude("org.slf4j", "slf4j-log4j12") в зависимость, которая транзитивно включает slf4j-log4j12. Например, при использовании Spark с Log4j 2.6:

libraryDependencies ++= Seq(
  // One SLF4J implementation (log4j-slf4j-impl) is here:
  "org.apache.logging.log4j" % "log4j-api" % "2.6.1",
  "org.apache.logging.log4j" % "log4j-core" % "2.6.1",
  "org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.6.1",
  // The other implementation (slf4j-log4j12) would be transitively
  // included by Spark. Prevent that with exclude().
  "org.apache.spark" %% "spark-core" % "1.5.1" exclude("org.slf4j", "slf4j-log4j12")
)
6
ответ дан Ruud 26 August 2018 в 06:35
поделиться

Вероятно, эта ошибка дает больше информации, подобной этой (хотя имена ваших баннеров могут быть разными)

SLF4J: Найдено привязку в [jar: file: / D: / Java / repository / ch / qos / logback / logback-classic / 1.2.3 / logback-classic-1.2.3.jar! /org/slf4j/impl/StaticLoggerBinder.class] SLF4J: найдено привязку в [jar: файл: / D: / Java / репозиторий /org/apache/logging/log4j/log4j-slf4j-impl/2.8.2/log4j-slf4j-impl-2.8.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]

Заметил, что конфликт исходит из двух банок, названных logback-classic-1.2.3 и log4j-slf4j-impl-2.8.2.jar.

Запустите mvn dependency:tree в этой родительской папке pom.xml проекта, указав:

Теперь выберите тот, который вы хотите игнорировать (может потреблять тонкие усилия, мне нужна дополнительная помощь)

Я решил не использовать импортированный из spring-boot-starter-data-jpa (верхняя зависимость) через spring-boot-starter и через spring-boot-starter-logging, pom становится:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

в приведенном выше pom spring-boot-starter-data-jpa будет использовать spring-boot-starter, настроенный в том же файле, который исключает logging (он содержит logback)

2
ответ дан Tiina 26 August 2018 в 06:35
поделиться

Решено, добавив следующее исключение в зависимостях (pom.xml), которые вызвали конфликт.

<exclusions>
    <exclusion>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
    </exclusion>
</exclusions> 
92
ответ дан user1493140 26 August 2018 в 06:35
поделиться

Я просто проигнорировал / удалил этот файл jar.

1
ответ дан VK_217 26 August 2018 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: