Spring对java的rmi调用:在启动服务端测试类等待客户端连接时,客户端报错如下:
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'logPerson' defined in class path resource [com/bus/test/ClientAppContext.xml]: Cannot resolve reference to bean 'com.bus.test.ILogPerson' while setting bean property 'serviceInterface'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'com.bus.test.ILogPerson' is defined
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'com.bus.test.ILogPerson' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:360)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:914)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:241)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:267)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1095)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:857)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:423)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at com.bus.test.LogPersonClient.main(LogPersonClient.java:28)还请大虾们执教,多谢!服务端测试类
 public class TestMain {
    
     /**
      * @param args
      * @throws IOException 
      */
     
     public static void main(String[] args) throws IOException {
    
     ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");   
     }
    
    }
客户端测试类
public class LogPersonClient {
    
    protected static final Log log = LogFactory.getLog(LogPersonClient.class);
    public static void main(String[] args) {           ClassPathResource resource = new ClassPathResource(                         "com/bus/test/ClientAppContext.xml");           BeanFactory beanFactory = new XmlBeanFactory(resource);           PersonVo personVo = new PersonVo();           personVo.setFristName("Wang");           personVo.setLastName("XiaoGuang");           ILogPerson iLogPerson = (ILogPerson) beanFactory.getBean("logPerson");           log.info(iLogPerson.getPerson(personVo));    }
}public class LogPerson implements ILogPerson {   
    public String getPerson(PersonVo personVo) {           return personVo.getFristName() + "." + personVo.getLastName();
    }
}package com.bus.test;import java.io.Serializable;
public class PersonVo implements Serializable{
 
    private String firstName;
    private String lastName;
    public void setFristName(String firstName){
 
       this.firstName = firstName;
 
    }
    public String getFristName(){ 
       return this.firstName;
    }
    public void setLastName(String lastName){
       this.lastName = lastName;
    }
   public String getLastName(){
       return this.lastName;
    }
}
public interface ILogPerson {
    
    public String getPerson(PersonVo personVo);
 
}spring server端配置文件applicationContext1.xml<?xml version="1.0" encoding="UTF-8"?>   
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"    
    "http://www.springframework.org/dtd/spring-beans.dtd">   
<beans>
    <bean id="logPersonService"
       class="org.springframework.remoting.rmi.RmiServiceExporter">    
     <property name="serviceName">
           <value>LogPerson</value>
       </property>      
        <property name="service">
           <ref bean="logPerson" />
       </property>
    <property name="serviceInterface">
           <value>com.bus.test.ILogPerson</value>
       </property>
       <property name="registryPort">
           <value>1210</value> 
       </property>
    </bean> 
  <bean id="logPerson" class="com.bus.test.LogPerson"></bean>
</beans>
spring client端配置文件ClientAppContext.xml
<?xml version="1.0" encoding="UTF-8"?>   
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"    
    "http://www.springframework.org/dtd/spring-beans.dtd">   
<beans>
    <bean id="logPerson"  class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
       <property name="serviceUrl"> 
           <value>rmi://localhost:1210/LogPerson</value>
       </property>
       <property name="serviceInterface">
           <ref bean="com.bus.test.ILogPerson" />
       </property>
    </bean>
</beans>