Интеграция Широ с Guice

Я пытаюсь интегрировать Guice с Широ. Я загружаю последние JAR-файлы Shiro с помощью:

<dependency>
  <groupId>org.apache.shiro</groupId>
  <artifactId>shiro-core</artifactId>
  <version>1.2.2</version>
</dependency>
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-guice</artifactId>
    <version>1.2.2</version>
</dependency>
<dependency>
  <groupId>org.apache.shiro</groupId>
  <artifactId>shiro-web</artifactId>
  <version>1.2.2</version>
</dependency>

Я не могу скомпилировать код, представленный в документации Shiro.

class MyShiroModule extends ShiroModule {
  protected void configureShiro() {
    try {
      // compile time error is shown with error message:
      // "Method toConstructor is undefined in type LinkedBindingBuilder". 
      bindRealm().toConstructor(IniRealm.class.getConstructor(Ini.class));
    } catch (NoSuchMethodException e) {
      addError(e);
    }
  }
  @Provides
  Ini loadShiroIni() {
    return Ini.fromResourcePath("classpath:shiro.ini");
  }
}

Похоже, есть проблема с версиями JAR.

Первый вопрос

Какова подходящая конфигурация Maven для компиляции этого кода?

Второй вопрос

Я всегда сталкиваюсь с проблемой версии такого типа и ищу в сети правильную версию. Или используйте одну версию поверх другого запуска программы и убедитесь, что программа работает. Есть ли способ преодолеть этот тип проблемы с версией, чтобы одна версия JAR была совместима с каждой версией?


person abishkar bhattarai    schedule 06.02.2014    source источник
comment
Как выглядит остальная часть вашего POM? Вы уверены, что в пути к классам указана правильная версия Guice? LinkedBindingBuilder находится в банке Guice, а не в банке Shiro.   -  person condit    schedule 06.02.2014


Ответы (1)


Некоторые классы пакетов Shiro имеют то же имя, что и нативные классы Java, убедитесь, что вы импортируете правильные классы.

person Gustavo Concon    schedule 08.07.2014