0

我尝试使用来自 gwt 的请求工厂和 spring

所以我像这样设置web.xml

 <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
    <servlet-name>requestFactoryServlet</servlet-name>
    <servlet-class>com.google.web.bindery.requestfactory.server.RequestFactoryServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>requestFactoryServlet</servlet-name>
    <url-pattern>/gwtRequest</url-pattern>
</servlet-mapping>


<welcome-file-list>
    <welcome-file>welcomeGWT.html</welcome-file>
</welcome-file-list>

但有个问题

org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.calibra.server.service.AccountService] is defined: expected single bean but found 0: 

我不知道这个文件是如何被调用的,在我的 applicationContext.xml 我有

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:p="http://www.springframework.org/schema/p"
   xmlns:aop="http://www.springframework.org/schema/aop"
   xmlns:tx="http://www.springframework.org/schema/tx"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:util="http://www.springframework.org/schema/util"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
   http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
   http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
   http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd">
<context:component-scan base-package="com.calibra" />
</beans>

账户服务

public interface AccountService {

    public Account findAccount(Long id);

    public void addNewAccount(Account account);

    public List<Account> loadAllAccounts();
}


@Service
public class AccountServiceImpl implements AccountService{

    @Override
    public void addNewAccount(Account account) {
        System.out.println("account added");
    }

   @Override
   public List<Account> loadAllAccounts() {
       System.out.println("loadAllAccounts");
       return new ArrayList<Account>(); 
   }

编辑:

这适用于我的加载功能,如果我添加到我的 applicationContext

<bean id="accountService" class="org.calibra.server.service.AccountServiceImpl"/>

这条线不为服务做这项工作

<context:component-scan base-package="com.calibra" />

任何想法?

4

0 回答 0