Tomee + Microprofile UnsatisfiedResolutionException

Всем!
Не могли бы вы дать мне совет по поводу такой проблемы.
У меня есть простой тестовый проект для тестирования с использованием конфигурации Microprofile.
Поле моего тестового класса, которое я тестирую:

   @Inject
   @ConfigProperty(name = "injected.value")
   private String injectedValue;

Итак, это раздел зависимостей моего pom:

<dependencies>
        <!-- https://mvnrepository.com/artifact/org.eclipse.microprofile/microprofile -->
        <dependency>
            <groupId>org.eclipse.microprofile</groupId>
            <artifactId>microprofile</artifactId>
            <version>3.3</version>
            <type>pom</type>
            <scope>provided</scope>
        </dependency>
</dependencies>

Я строю войну, а затем:
1. когда я развертываю войну в tomee 8.0.1-microprofile (tomee-maven-plugin с tomeeClassifier, настроенным на микропрофиль) -> тогда все работает ОК.
2. НО, когда я развертываю войну в tomee 8.0.1-plus (tomee-maven-plugin с tomeeClassifier, настроенным на plus) -> тогда я получил исключение:

org.apache.webbeans.exception.WebBeansDeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [java.lang.String] is not found with the qualifiers 
Qualifiers: [@org.eclipse.microprofile.config.inject.ConfigProperty(name=injected.value, defaultValue=org.eclipse.microprofile.config.configproperty.unconfigureddvalue)]
for injection into Field Injection Point, field name :  injectedValue, Bean Owner : ...

Более того, в случае 1 (разверните tomee 8.0.1-microprofile), когда я меняю зависимости pom на:

<dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>8.0.1</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.eclipse.microprofile.config</groupId>
            <artifactId>microprofile-config-api</artifactId>
            <version>1.4</version>
        </dependency>
</dependencies>

я получил ошибку:

 org.apache.webbeans.exception.WebBeansDeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [java.lang.String] is not found with the qualifiers 
Qualifiers: [@org.eclipse.microprofile.config.inject.ConfigProperty(name=injected.value, defaultValue=org.eclipse.microprofile.config.configproperty.unconfigureddvalue)]...

Кто-нибудь может мне помочь с этой проблемой?
Мне нужно использовать Microptofile в продукте, и пока я не могу этого сделать.


person Vitali    schedule 30.03.2020    source источник


Ответы (1)


для работы версии plus и plume необходимо включить в system.properties следующее свойство:

tomee.mp.scan = все

ссылка: http://tomee-openejb.979440.n4.nabble.com/MicroProfile-Integration-in-Plus-and-Plume-td4686818i60.html

другой способ - использовать плагин tomee и добавить это свойство в pom.xml:

<systemVariables>
       <tomee.mp.scan>all</tomee.mp.scan>
 </systemVariables>
person Daniel Dias    schedule 20.10.2020
comment
Даниэль Диас Большое спасибо !. У меня работает файл System.properties. - person Vitali; 14.01.2021
comment
отличный Виталий :) - person Daniel Dias; 23.01.2021