2015-02-23 2 views
1

Я использую beanio для анализа содержимого фиксированной длины (строка с одной строкой). Я хочу использовать конфигурацию на основе аннотаций, но она не работает.Как анализировать записи фиксированной длины с помощью beanIO?

Что может быть неправильным при использовании следующего кода?

 StreamBuilder builder = new StreamBuilder("s1").addRecord(MyRecord.class); 
     StreamFactory factory = StreamFactory.newInstance(); 
     factory.define(builder); 

     Unmarshaller unmarshaller = factory.createUnmarshaller("s1"); 
     unmarshaller.unmarshal("123ASD"); 

@Record(minOccurs = 1, maxOccurs = 1) 
public class MyRecord { 

    @Field(at = 1, length = 3, minOccurs = 1) 
    private String number; 

    @Field(at = 4, length = 3, minOccurs = 1) 
    private String text; 
} 


org.beanio.InvalidRecordException: Invalid 'myRecord' record 
==> Invalid 'number': Expected minimum 1 occurrences 
==> Invalid 'text': Expected minimum 1 occurrences 
    at org.beanio.internal.parser.UnmarshallingContext.validate(UnmarshallingContext.java:200) 
    at org.beanio.internal.parser.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:204) 
    at org.beanio.internal.parser.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:89) 

ответ

4

я пропускал следующее:

new StreamBuilder("s1").format("fixedlength").addRecord(MyRecord.class); 
Смежные вопросы