Hi All,
I dont understand why. I made everything by the docs in order to init my class by non-default constructor
thats my code:
Code:public abstract class Vechile implements VechileInterface { protected int numOfWheels; protected String modelName; protected String year; protected LisenceDrive lisenceDrive; static Logger logger = Logger.getLogger(Spring3HelloWorldTest.class); public Vechile(int numOfWheels, String modelName, String year) { this.numOfWheels = numOfWheels; this.modelName = modelName; this.year = year; } public Vechile(VechileDetails vechileDetails) { this.numOfWheels = vechileDetails.getNumOfWheels(); this.modelName = vechileDetails.getModelName(); this.year = vechileDetails.getYear(); } public Vechile() { int z = 0; } public int getNumOfWheels() { return numOfWheels; } public void setNumOfWheels(int numOfWheels) { this.numOfWheels = numOfWheels; } public String getModelName() { return modelName; } public void setModelName(String modelName) { this.modelName = modelName; } public String getYear() { return year; } public void setYear(String year) { this.year = year; } public LisenceDrive getLisenceDrive() { return lisenceDrive; } public void setLisenceDrive(LisenceDrive lisenceDrive) { this.lisenceDrive = lisenceDrive; } @Override public String toString() { return "Vechile [modelName=" + modelName + ", numOfWheels=" + numOfWheels + ", year=" + year + "]"; } }
Code:package com.spring.beans.ParkingCar; public class FourWheelsVechile extends Vechile implements VechileInterface { @Override public void drive() { logger.debug("I am driving an FourWheelsVechile and my details:" + this.toString() + " and my lisence details:" + this.getLisenceDrive().toString()); } }Code:<?xml version="1.0" encoding="UTF-8"?> <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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <aop:aspectj-autoproxy /> <bean id="lisenceDrive" class="com.spring.beans.ParkingCar.LisenceDrive" p:carLisenceNum="333" p:isValidateCar="true" /> <bean id="AmbulancelisenceDrive" class="com.spring.beans.ParkingCar.LisenceDrive" p:carLisenceNum="999" p:isValidateCar="false" /> <bean id="TransitlisenceDrive" class="com.spring.beans.ParkingCar.LisenceDrive" p:carLisenceNum="111" p:isValidateCar="false" /> <bean id="TransitVechileDetails" class="com.spring.beans.ParkingCar.VechileDetails" p:modelName="Transit-AS" p:numOfWheels="4" p:year="1992" /> <bean id="Ambulance" class="com.spring.beans.ParkingCar.FourWheelsVechile" p:modelName="GMC" p:numOfWheels="4" p:year="1997" p:lisenceDrive-ref="AmbulancelisenceDrive" /> <bean id="Bike" class="com.spring.beans.ParkingCar.TwoWheelsVechile" autowire="byName" p:modelName="T-BIRD" p:numOfWheels="2" p:year="2012" /> </beans>
test class:Code:package com.spring.beans.ParkingCar; public interface VechileInterface { public void drive(); }
error msg:Code:package com.spring.test; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.spring.aspect.Spring3HelloWorld; import com.spring.beans.ParkingCar.FourWheelsVechile; import com.spring.beans.ParkingCar.TwoWheelsVechile; import com.spring.beans.ParkingCar.Vechile; import com.spring.beans.calculator.CalculateNumbersHolderBean; import com.spring.beans.calculator.CalculateStrategyBean; import com.spring.beans.calculator.CalculatorBean; public class Spring3HelloWorldTest { static Logger logger = Logger.getLogger(Spring3HelloWorldTest.class); public static void main(String[] args) { execute(); } private static void execute() { PropertyConfigurator.configure("log4j.properties"); ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Vechile twoWheelsVechile = (TwoWheelsVechile) context.getBean("Bike"); twoWheelsVechile.drive(); Vechile fourWheelsVechile = (FourWheelsVechile) context.getBean("Ambulance"); fourWheelsVechile.drive(); fourWheelsVechile = (FourWheelsVechile) context.getBean("Transit"); fourWheelsVechile.drive(); } }
I am getting this error:
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefini tionException: No bean named 'Transit' is defined
at org.springframework.beans.factory.support.DefaultL istableBeanFactory.getBeanDefinition(DefaultListab leBeanFactory.java:509)
at org.springframework.beans.factory.support.Abstract BeanFactory.getMergedLocalBeanDefinition(AbstractB eanFactory.java:1041)
at org.springframework.beans.factory.support.Abstract BeanFactory.doGetBean(AbstractBeanFactory.java:273 )
at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:189)
at org.springframework.context.support.AbstractApplic ationContext.getBean(AbstractApplicationContext.ja va:1044)
at com.spring.test.Spring3HelloWorldTest.execute(Spri ng3HelloWorldTest.java:60)
at com.spring.test.Spring3HelloWorldTest.main(Spring3 HelloWorldTest.java:24)
thanks,
ray.


Reply With Quote
