2016-03-23 5 views
1
<?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:aop="http://www.springframework.org/schema/aop" 
    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 
      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> 

<!-- <context:annotation-config/> 
<aop:aspectj-autoproxy /> 

--> 
<bean name="triangle" class="springaop.service.model.Triangle"> 
<property name="name" value="triagnle name"/> 
</bean> 
    <bean name="circle" class="springaop.service.model.Circle"> 
<property name="name" value="cirlce name"/> 
</bean> 
    <bean name="shapeservice" class="springaop.service.model.Shapeservice" autowire="byname"/> 

</bean> 

Dies ist meine XML-Datei.Getting-Parse-Ausnahme

package springaop; 

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 

import springaop.service.Shapeservice; 

public class Aopmain { 

    public static void main(String[] args) { 

    ApplicationContext ctx = new ClassPathXmlApplicationContext("spring1.xml"); 

    Shapeservice shapeservice = ctx.getBean("shapeservice",Shapeservice.class); 
    System.out.println(shapeservice.getCircle().getName()); 
    } 

} 

Das ist mein Haupt App ... bitte dabei helfen zu lösen ...

Mar 23, 2016 9:31:47 AM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh 
INFO: Refreshing org[email protected]b1a58a3: startup date [Wed Mar 23 09:31:47 IST 2016]; root of context hierarchy 
Mar 23, 2016 9:31:48 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 
INFO: Loading XML bean definitions from class path resource [spring1.xml] 
Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 20 in XML document from class path resource [spring1.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 20; columnNumber: 93; cvc-enumeration-valid: Value 'byname' is not facet-valid with respect to enumeration '[default, no, byName, byType, constructor, autodetect]'. It must be a value from the enumeration. 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93) 
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
    at springaop.Aopmain.main(Aopmain.java:12) 
Caused by: org.xml.sax.SAXParseException; lineNumber: 20; columnNumber: 93; cvc-enumeration-valid: Value 'byname' is not facet-valid with respect to enumeration '[default, no, byName, byType, constructor, autodetect]'. It must be a value from the enumeration. 
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203) 
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134) 
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437) 
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368) 
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325) 
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:458) 
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3237) 
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processOneAttribute(XMLSchemaValidator.java:2832) 
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processAttributes(XMLSchemaValidator.java:2769) 
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2056) 
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:766) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:356) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) 
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243) 
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:348) 
    at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388) 
    ... 14 more 

Im mit Spring 4 und aspectj1.8/lib/aspectjrt.jar/aspectj1 .8/lib/aspectjweaver.jar/aopalliance-alpha1.jar/cglib-3.2.1.jar/asm-4.1/lib/asm-4.1.jar

Antwort

0

Ich denke, das Root-Tag <beans> hat kein passendes End-Tag </beans> . Sie haben </bean> als End-Tag in Ihrem xml, ändern Sie es zu </beans> und sehen, dass sollte funktionieren.

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" 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 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> ... </beans> -> Beachten Sie das passende Tag in Ihrem XML.

1

In dieser Bohne Definition:

<bean name="shapeservice" class="springaop.service.model.Shapeservice" autowire="byname"/> 

Änderung byname-byName. Die richtige Definition sollte sein:

<bean name="shapeservice" class="springaop.service.model.Shapeservice" autowire="byName"/> 
2

Es gibt drei Probleme in Ihrem Code. Sie haben das Start-Beans-Tag nicht in Ihrer Spring-Konfigurationsdatei beendet, stattdessen haben Sie das End-Tag "Bean" anstelle des End-Tags "Beans" beibehalten.

und eine andere lautet: "Autowiring nach Name" erfordert keyWord 'byName' & nicht 'byname'. Ersetzen Sie 'Byname' durch 'ByName'.

dritte ist nur Rechtschreibfehler: In Ihrer Frühjahrskonfigurationsdatei haben Sie eine Bohne, nämlich 'Dreieck', deren Eigenschaft 'name' den Wert 'triagnle name' hat, was der Schreibfehler ist. Vielleicht beeinflusst es das nicht, aber es kann Sie in zukünftigen Anpassungen beeinflussen. Sie können es zurück in "Dreiecksname" ändern.