0

ブロッククォート

Seam3でRESTアプリケーションを作成しようとしています。Helloworldはうまく機能します。しかし、アノテーション@Injectを使用してRestアプリケーション内でインジェクションを使用しようとしましたが、オブジェクトはまだnullです。

誰かが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_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_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]
4

1 に答える 1

0

私が成功する方法:すべてを同じプロジェクトに入れてEclipseに入れます。そして削除:

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

問題は2つのプロジェクトがあったことだったようです:

XXXRest
 +--XXXCore

そして注射は行われなかった...

于 2012-06-17T20:45:42.990 に答える