您的位置:首页 > 数据库 > Oracle

六分钟学会创建Oracle表空间的步骤

2012-04-02 17:29 363 查看
今天做了了一个自定义PropertyEditor出现问题,字符串解析错误。下面我把相应的类与自定义的PropertyEditor写出,希望有人帮我解决一下:

 

java 代码

package org.beans.beanwrapper;   

  

public class Address {   

    private String street;   

  

    private String doorNum;   

  

    private String postCode;   

  

    public String getStreet() {   

        return street;   

    }   

  

    public void setStreet(String street) {   

        this.street = street;   

    }   

  

    public String getDoorNum() {   

        return doorNum;   

    }   

  

    public void setDoorNum(String doorNum) {   

        this.doorNum = doorNum;   

    }   

  

    public String getPostCode() {   

        return postCode;   

    }   

  

    public void setPostCode(String postCode) {   

        this.postCode = postCode;   

    }   

}   

java 代码

package org.beans.beanwrapper;   

  

public class Person {   

    private String name;   

  

    private Address address;   

  

    public String getName() {   

        return name;   

    }   

  

    public void setName(String name) {   

        this.name = name;   

    }   

  

    public Address getAddress() {   

        return address;   

    }   

  

    public void setAddress(Address address) {   

        this.address = address;   

    }   

  

}   

java 代码

package org.beans.beanwrapper;   

  

import java.beans.PropertyEditorSupport;   

  

import org.springframework.util.StringUtils;   

  

public class AddressProptertyEditor extends PropertyEditorSupport {   

    public void setAsTest(String text) {   

        // 支持的格式为 streeValue,doorNumValue,postCode   

            System.out.println("使用自己的编辑器。");      

            if (text == null || !StringUtils.hasText(text)) {      

                throw new IllegalArgumentException("老大,不能为空啊!");      

            }      

            else     

            {      

                String[] strArr = StringUtils.tokenizeToStringArray(text,",");      

                Address add = new Address();      

                add.setStreet(strArr[0]);      

                add.setDoorNum(strArr[1]);      

                add.setPostCode(strArr[2]);      

                setValue(add);      

            }      

        }      

}   

java 代码

package org.jms.beans.test;   

  

import junit.framework.TestCase;   

  

import org.springframework.context.ApplicationContext;   

import org.springframework.context.support.ClassPathXmlApplicationContext;   

import org.beans.beanwrapper.*;   

  

public class BeanWrapperTest extends TestCase {   

    public void testWrapper() {   

        ApplicationContext context = new ClassPathXmlApplicationContext(   

                "classpath:resource/applicationContext.xml");   

  

        Person person = (Person) context.getBean("person");   

        System.out.println(person.getAddress());   

           

    }   

}   

自定义PropertyEditor注册配置文件如下

xml 代码

<bean id="customEditorConfigurer"  

        class="org.springframework.beans.factory.config.CustomEditorConfigurer">  

        <property name="customEditors">  

            <map>  

                <entry key="org.beans.beanwrapper.Address"><!-- 属性类型 -->  

                    <bean  

                        class="org.beans.beanwrapper.AddressProptertyEditor" />  

                    <!--对应Address的编辑器 -->  

                </entry>  

            </map>  

        </property>  

    </bean>  

  

    <bean id="person" class="org.beans.beanwrapper.Person">  

        <property name="name" value="Tom" />  

        <property name="address" value="朝阳区,Soho 1601,010101">  

        </property>  

    </bean>  

出现问题的代码如下:

ruby 代码

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'person' defined in class path resource [resource/applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:   

PropertyAccessException 1: org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.lang.String] to required type [org.beans.beanwrapper.Address] for property 'address'; nested exception is java.lang.IllegalArgumentException: 朝阳区,Soho 1601,010101   

Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessException details (1) are:   

PropertyAccessException 1:   

org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.lang.String] to required type [org.beans.beanwrapper.Address] for property 'address'; nested exception is java.lang.IllegalArgumentException: 朝阳区,Soho 1601,010101   

Caused by: java.lang.IllegalArgumentException: 朝阳区,Soho 1601,010101   

    at java.beans.PropertyEditorSupport.setAsText(Unknown Source)   

    at org.springframework.beans.TypeConverterDelegate.convertValue(TypeConverterDelegate.java:253)   

    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:177)   

    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:127)   

    at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:775)   

    at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:608)   

    at org.springframework.beans.AbstractPropertyAccessor.setPropertyValue(AbstractPropertyAccessor.java:49)   

    at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:74)   

    at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:57)   

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:966)   

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:729)   

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:416)   

    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)   

    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)   

    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)   

    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)   

    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:642)   

    at org.jms.beans.test.BeanWrapperTest.testWrapper(BeanWrapperTest.java:27)   

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   

    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)   

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)   

    at java.lang.reflect.Method.invoke(Unknown Source)   

    at junit.framework.TestCase.runTest(TestCase.java:164)   

    at junit.framework.TestCase.runBare(TestCase.java:130)   

    at junit.framework.TestResult$1.protect(TestResult.java:110)   

    at junit.framework.TestResult.runProtected(TestResult.java:128)   

    at junit.framework.TestResult.run(TestResult.java:113)   

    at junit.framework.TestCase.run(TestCase.java:120)   

    at junit.framework.TestSuite.runTest(TestSuite.java:228)   

    at junit.framework.TestSuite.run(TestSuite.java:223)   

    at org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:35)   

    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)   

    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)   

    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)   

    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)   

    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)   

    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)   

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: