我有一个运行良好的java web应用程序,但今天我尝试开始使用spring进行依赖项注入。该应用程序应该在Jetty Server上运行,但我遇到了这个问题。
当我尝试使用任何包含spring依赖项的servlet时,我会得到以下错误:
java.lang.IllegalStateException: No resource at valueService
at org.eclipse.jetty.annotations.ResourceAnnotationHandler.handleMethod(ResourceAnnotationHandler.java:345)
at org.eclipse.jetty.annotations.ResourceAnnotationHandler.doHandle(ResourceAnnotationHandler.java:66)
at org.eclipse.jetty.annotations.AnnotationIntrospector$AbstractIntrospectableAnnotationHandler.handle(ResourceAnnotationHandler.java:345)
valueService是HttpServlet中第一个依赖项的名称,用spring注释如下:
@Resource(name="valueService")
protected ValueService valueService;
在我的应用程序上下文中定义为:
<bean id="valueService" class="com.nimbits.server.transaction.value.service.ValueServiceImpl" />
所以,jetty是开源的,所以当我查看jetty服务器ResourceAnnotationHandler.java:345中的代码时,它是这样做的:
else if (!Util.isEnvEntryType(paramType))
{
//if this is an env-entry type resource and there is no value bound for it, it isn't
//an error, it just means that perhaps the code will use a default value instead
// JavaEE Spec. sec 5.4.1.3
throw new IllegalStateException("No resource at "+(mappedName==null?name:mappedName));
}
所以这是我的错误。问题:任何一个jetty专家都知道为什么jetty处理我的spring注释并抛出这个异常。有办法满足它吗?还是停止?
谢谢,真的卡住了。
Ben
@Resource(name="valueService")
protected ValueService valueService;
让码头不满
切换到:
@Autowired
protected ValueService valueService;
已解决