我一直在嘗試從JBOSS 5升級到jboss 7,並且出現以下異常。@資源注入目標無效。只允許使用setter方法:
at java.lang.Thread.run(Thread.java:619) [rt.jar:1.6.0_20]
Caused by: java.lang.IllegalArgumentException: JBAS011089: @Resource injection target is invalid. Only setter methods are allowed: void com.myaccount.admin.manager.dao.ManagerDaoImpl.init(com.ibatis.sqlmap.client.SqlMapClient)
at org.jboss.as.ee.component.deployers.ResourceInjectionAnnotationParsingProcessor.processMethodResource(ResourceInjectionAnnotationParsingProcessor.java:192)
at org.jboss.as.ee.component.deployers.ResourceInjectionAnnotationParsingProcessor.deploy(ResourceInjectionAnnotationParsingProcessor.java:153)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
... 5 more
下面是代碼
@Repository("managerDao")
public class ManagerDaoImpl extends SqlMapClientDaoSupport implements ManagerDao {
@Resource(name="sqlMapClient_ADMIN")
public void init(SqlMapClient sqlMapClient) {
setSqlMapClient(sqlMapClient);
}
......
我用Google搜索,但除了JBoss的罐子我沒有發現任何的源代碼。
只要註釋setter,就像例外說的那樣。 –