Java Stax导入

时间:2015-12-16 18:59:42

标签: java stax

我有无状态会话bean的功能:

public ProductAttributeUnit createProductAttributeUnit(ProductAttributeUnit productAttributeUnit) 
{ 
    em.persist(productAttributeUnit); 
    return productAttributeUnit; 
} 

我要从xml文件中导入另一个类

 @Inject private ProductAttributeService productAttributeService;
ProductAttributeUnit productAttributeUnit;
private ProductAttributeUnitTranslation productAttributeUnitTranslation;
private String tagContent;
private String node;

public void importUnits (InputStream xmlFile) throws XMLStreamException{
    XMLInputFactory factory = XMLInputFactory.newInstance();
    XMLStreamReader reader = factory.createXMLStreamReader(xmlFile);

     while(reader.hasNext()){
         int event = reader.next();

         switch(event){

             case XMLStreamConstants.START_ELEMENT:
                 if ("Units".equals(reader.getLocalName())){
                    node = "Unit";}

                 if ("Unit".equals(reader.getLocalName())){
                    productAttributeUnit = new ProductAttributeUnit();
                 }

             break;

             case XMLStreamConstants.CHARACTERS:
                    tagContent = reader.getText().trim();
             break;

             case XMLStreamConstants.END_ELEMENT:

                 switch(reader.getLocalName()){
                     case "Code":
                         productAttributeUnit.setCode(tagContent);
                     break;                        

                     case "Unit":
                         productAttributeService.createProductAttributeUnit(productAttributeUnit);

         }
     }
}}

我收到了java.lang.NullPointerException。如果我将productAttributeUnit传递给List而不是从此List中保留元素,则everythnig工作正常。

为什么我不能直接使用JPA来保留它?

0 个答案:

没有答案