Шов 3 / ОТДЫХ / Инъекция

Цитата

Я пытаюсь создать приложение REST с помощью Seam 3. Привет, мир, отлично работает. Но я попытался использовать инъекцию в приложении Rest с аннотацией @Inject, но объект по-прежнему нулевой.

Есть ли у кого-нибудь фрагмент кода, который инициализирует компонент, вызываемый в классе REST?

большое спасибо. web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app
@ApplicationPath("object")
@Path("creation")
@RequestScoped
public class ObjectApplication extends javax.ws.rs.core.Application {

@Inject   
ObjectManager objectManager;
....

@POST
@GET
@Path("create")
@Produces(MediaType.APPLICATION_XML)
@Consumes(MediaType.APPLICATION_XML)
public String createObject(ObjectType objectType) {
...
}
}
5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app
@Stateless
public class ObjectManager {
}
0.xsd" version="3.0"> <servlet> <servlet-name>javax.ws.rs.core.Application</servlet-name> <load-on-startup>1</load-on-startup> </servlet> </web-app>

Приложение REST

@ApplicationPath("object")
@Path("creation")
@RequestScoped
public class ObjectApplication extends javax.ws.rs.core.Application {

@Inject   
ObjectManager objectManager;
....

@POST
@GET
@Path("create")
@Produces(MediaType.APPLICATION_XML)
@Consumes(MediaType.APPLICATION_XML)
public String createObject(ObjectType objectType) {
...
}
}

и диспетчер объектов

@Stateless
public class ObjectManager {
}

.

20:30:50,362 INFO  [org.jboss.weld.deployer] (MSC service thread 1-5) JBAS016008: Starting weld service for deployment ObjectRest.war
20:30:50,420 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: Failed to start service jboss.deployment.unit."ObjectRest.war".WeldService: org.jboss.msc.service.StartException in service jboss.deployment.unit."ObjectRest.war".WeldService: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [ObjectManager] with qualifiers [@Default] at injection point [[field] @Inject com.qc.api.rest.ObjectApplication.objectManager]

person Antoine O    schedule 04.06.2012    source источник


Ответы (1)


Как мне это удалось: поместить все в тот же проект в eclipse. И удалите:

<servlet-name>javax.ws.rs.core.Application</servlet-name>
    <load-on-startup>1</load-on-startup>
</servlet>

Похоже, проблема заключалась в том, что было два проекта:

XXXRest
 +--XXXCore

и инъекция не производилась ...

person Antoine O    schedule 17.06.2012