2013-12-24 4 views
1

Я следил за весенним учебником для создания успокаивающей исполняемой банки. http://spring.io/guides/gs/rest-service/Eclipse: Невозможно использовать плагин инструмента Hibernate для генерации cfg xml

Я использую Eclipse, и я настраиваю Hibernate в первый раз. Я понимаю, что hibernate cfg xml-файлы могут быть сгенерированы плагином конфигурации спящего режима eclipse (согласно http://www.mkyong.com/hibernate/how-to-generate-code-with-hibernate-tools/). Я установил это и настроил соединение с моей базой данных.

При попытке обновить представление базы данных, чтобы увидеть дочерние объекты, я получаю ошибку:

An internal error occurred during: "Fetching children of Database". 
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V 

Мой POM довольно просто.

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.mydomain</groupId> 
    <artifactId>myapp</artifactId> 
    <version>0.1.0</version> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>0.5.0.M6</version> 
    </parent> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId>   
     </dependency> 
    </dependencies> 

    <properties> 
     <start-class>com.mydomain.myapp.Application</start-class> 
    </properties> 

    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <!-- <version>2.3.2</version> --> 
      </plugin> 

      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId>   
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <repositories> 
     <repository> 
      <id>spring-snapshots</id> 
      <url>http://repo.spring.io/libs-snapshot</url> 
      <snapshots><enabled>true</enabled></snapshots> 
     </repository> 
    </repositories> 

    <pluginRepositories> 
     <pluginRepository> 
      <id>spring-snapshots</id> 
      <url>http://repo.spring.io/libs-snapshot</url> 
      <snapshots><enabled>true</enabled></snapshots> 
     </pluginRepository> 
    </pluginRepositories> 
</project> 

Я понимаю, эта проблема может быть вызвана зависимости нагрузки LocationAwareLogger, что конфликтует с Hibernate, когда он работает, чтобы принести БД детей.

Я проследил родительских помпов до весенних загрузочных зависимостей https://github.com/spring-projects/spring-boot/blob/master/spring-boot-dependencies/pom.xml, где я нашел загрузку slf4j. Думаю, это проблема.

Я выхожу из своей глубины здесь. Как я могу выполнить свою задачу по настройке плагина Hibernate eclipse для генерации моих файлов cfg.xml? Есть ли способ исключить slf4j, который загружается в grandparent pom?

Благодаря

+0

Возможно, вам нужно показать все наследование зависимостей на 'mvn depenenty: tree', а затем добавить исключение зависимостей maven, чтобы исключить зависимость конфликта от другой зависимости, просто используя спящий режим. –

+0

В затмении я вижу иерархию зависимости. Slf4j загружается с весеннего ботинка-стартера, называемого пружинным стартером, который называется Spring-boot-starter-web. Но это в моем родительском pom или родительском родительском pom ... Как я могу их исключить? – Lurk21

+0

вы можете обратиться к http://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html –

ответ

2

@Leo Хуан был прав, когда он указал мне на этот документ.

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-logging</artifactId> 
    <scope>compile</scope> 
    <exclusions> 
     <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>jcl-over-slf4j</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>log4j-over-slf4j</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>jul-to-slf4j</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-jdk14</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
0

Удалите всю конфигурацию slf4j в файле artifacts.xml затмения. Затем перезапустите eclipse и повторите процесс спящего режима.

0

Решение, которое позволяет избежать, чтобы изменить поведение вашего проекта, поэтому необходимости модифицировать только Hibernare Tools плагин, чтобы изменить конфигурацию спящего режима в вашем проекте:

  1. Перейти к пути к классам панель
  2. Удалить проект Вступление
  3. классы
  4. Add External баночки LIBS из плагина зимует инструмент в папке: затмение \ Plugins \ org.hibernate.eclipse.libs_3.7.1.Final-v20140303-0022-B124 \ Lib \ зимует
  5. комментария temporarely в pom.xml блок библиотеки каротажа SL F4J.
  6. Restart Затмение

После использования инструментов, восстановления pom.xml.

1

У меня также была такая же проблема, и мне пришлось исключить все баночки sl4j из POM, как указано выше. Важно, чтобы после этого Eclipse перезапустил.

+0

Перезапуск Eclipse работал! – Arpit

Смежные вопросы