Я очень простой тест:Arquillian над Wildfly DeploymentException: WELD-001408: неудовлетворенных зависимостей
@RunWith(Arquillian.class)
public class SimpleTest
{
@Inject private SingleEntity singleEntity;
@Deployment
public static WebArchive createDeployment()
{
return ShrinkWrap.create(WebArchive.class)
.addClass(SingleEntity.class)
.addAsWebInfResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml"));
}
@Test
public void categorize()
{
assertNotNull(this.singleEntity);
}
}
Я только хочу, чтобы ввести объект типа SingleEntity
. SingleEntity
является единым POJO:
public class SingleEntity
{
private String id;
private String description;
public SingleEntity(String id, String description) {
super();
this.id = id;
this.description = description;
}
//getters & setters
}
После того, что я выполнить gradle test
. Я настроил тесты для того, чтобы Arquillian выполнять их в Wildfly вложенной например:
<arquillian xmlns="http://jboss.org/schema/arquillian"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
<container qualifier="jboss" default="true">
<configuration>
<!-- Supported property names: [managementPort, username, managementAddress, bundlePath, managementProtocol,
cleanServerBaseDir, jbossHome, password, modulePath] -->
<property name="jbossHome">C:\servers\wildfly-Test-8.2.0.Final</property>
<property name="modulePath">C:\servers\wildfly-Test-8.2.0.Final\modules\</property>
<!-- <property name="managementPort">8888</property> -->
</configuration>
</container>
</arquillian>
Это очень просто, однако, я получаю исключение, говоря мне SingleEntity
можите быть решена:
Вызванная: org.jboss.weld.exceptions.DeploymentException: WELD-001408: неудовлетворенные зависимости для типа SingleEntity с отборочными @default
в месте инъекции точке [BackedAnnotatedField] @Inject частного com.jeusdi.arquillian.SimpleTest.singleEntity
на com.jeusdi.arquillian.SimpleTest.singleEntity (SimpleTest.java:0)
Любые идеи? Спасибо за всех
Спасибо за ваш ответ. Я думал, что помещать 'beans.xml' в мой' WebArchive' было достаточно для разрешения обработки бит на CDI. Тем не менее, я протестировал аннотацию своей «SingleEntity» с помощью '@ ApplicationScoped', и он снова выгружает одно и то же сообщение. – Jordi
Я не уверен, что из-за вашего ограниченного примера, но имеет ли ваш объект конструктор по умолчанию? Я предположил, что вы опустили его для целей нарушения, но для того, чтобы этот класс был действительным объектом JPA и компонентом CDI, ему нужен конструктор по умолчанию. Вероятно, вы узнаете об этом в своих журналах. –