0

春季新手来了。我的 Spring MVC 3.0.2 应用程序从 Glassfish 3.0.1 收到以下错误:

rg.glassfish.deployment.common.DeploymentException: WELD-001408 Injection point has unsatisfied dependencies.  Injection point:  parameter 0 of constructor public controller.CustomWebArgumentResolverInstaller(org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter);  Qualifiers:  [@javax.enterprise.inject.Default()]

我的 applicationContext.xml 有

<mvc:annotation-driven />

CustomWebArgumentResolverInstaller.java 如下:

package controller;

import javax.inject.Inject;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter;
import org.springframework.web.bind.support.WebArgumentResolver;
import org.springframework.mobile.device.mvc.DeviceWebArgumentResolver;



@Component
public class CustomWebArgumentResolverInstaller {

@Inject
public CustomWebArgumentResolverInstaller(AnnotationMethodHandlerAdapter controllerInvoker) {
    WebArgumentResolver[] resolvers = new WebArgumentResolver[1];
    resolvers[0] = new DeviceWebArgumentResolver();
    controllerInvoker.setCustomArgumentResolvers(resolvers);
}
}

任何关于寻找什么的想法都非常受欢迎。由于我是新手,因此我不确定与发布相关的内容,因此如果您需要其他信息,请询问。

4

1 回答 1

1

在您的情况下,看起来 JSR-330 注释(@Inject@Named)是由 Glassfish 而不是 Spring 解决的。我不确定如何抑制这种情况,但一种解决方法可能是简单地使用 Spring 本机注释 ( @Autowired)。

于 2012-09-04T00:02:22.630 回答