2013-08-19 78 views
0

我是sakai開發新手,我選擇使用spring mvc。該工具是建立正常,但我越來越沒有名爲豆 'org.sakaiproject.logic.SakaiProxy' 被定義錯誤沒有名爲'org.sakaiproject.logic.SakaiProxy'的bean被定義

org.springframework.beans.factory.BeanCreationException: Error creating bean with name '/index.htm' defined in ServletContext resource [/WEB-INF/springapp-servlet.xml]: Cannot resolve reference to bean 'org.sakaiproject.logic.SakaiProxy' while setting bean property 'sakaiProxy'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'org.sakaiproject.logic.SakaiProxy' is defined

這是我springapp-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> 

<bean id="viewResolver" 
    class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" 
     value="org.springframework.web.servlet.view.JstlView" /> 
<!--<property name="prefix" value="/WEB-INF/jsp/" />--> 
    <property name="suffix" value=".jsp" /> 
    <property name="order" value="10" /> 
    </bean> 

<bean name="/index.htm" 
    class="org.sakaiproject.tool.HelloWorldController"> 
    <property name="sakaiProxy" ref="org.sakaiproject.logic.SakaiProxy"/> 
</bean> 

和這是我的controller

package org.sakaiproject.tool; 

import java.util.HashMap; 
import java.util.Map; 

import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import lombok.Getter; 
import lombok.Setter; 

import org.springframework.web.servlet.ModelAndView; 
import org.springframework.web.servlet.mvc.Controller; 

import org.sakaiproject.logic.SakaiProxy; 

public class HelloWorldController implements Controller { 

/** 
* Hello World Controller 
* 
* @author Mike Jennings ([email protected]) 
* 
*/ 

private SakaiProxy sakaiProxy = null; 

public ModelAndView handleRequest(HttpServletRequest arg0, 
     HttpServletResponse arg1) throws Exception { 

    Map<String, Object> map = new HashMap<String,Object>(); 
    map.put("currentSiteId", sakaiProxy.getCurrentSiteId()); 
    map.put("userDisplayName", sakaiProxy.getCurrentUserDisplayName()); 

    return new ModelAndView("index", map); 
} 

} 

我不知道爲什麼這個錯誤來了我谷歌出來,但沒有太大的幫助:(

+0

我使用酒井2.8.2和Tomcat 5.5 –

回答

1

問題是與

<property name="sakaiProxy" ref="org.sakaiproject.logic.SakaiProxy"/> 

您使用ref屬性,它引用由豆其id。沒有名爲org.sakaiproject.logic.SakaiProxy的bean,因此是錯誤。你可能想創建一個名爲SakaiProxy,並引用它的bean,即

<bean id="SakaiProxy" class="org.sakaiproject.logic.SakaiProxy" /> 
... 
<property name="sakaiProxy><ref bean="SakaiProxy" /></property> 

欲瞭解更多信息請參閱this

編輯:

sakaiProxyprivate字段。這可能會引起問題,因爲通常會通過public setter注入豆類,即public void setSakaiProxy(SakaiProxy proxy),除非該字段用@Autowired註解(它也可以處理private字段)。欲瞭解更多信息,請參閱this,thisthis

+0

沒有解決:( –

+0

@DinkarThakur你確定類'org.sakaiproject.logic.SakaiProxy'存在於您的構建路徑? – Mateusz

+0

是的,它是目前有 –

相關問題