2013-01-10 29 views
1

当通过ActiveMQ将对象发送到队列时,我遇到了一个问题。我发送的对象是一个BrokerRequest,它包含一个UUID,一个优先级(1,2,3)和一个DocumentType,它是一个JAXB对象。发送包含JAXB元素的对象时发生java.io.NotSerializableException

下面是我使用的代码块:

DocumentType jaxbDoc = getJaxbFromFile("/home/dev/document.xml"); 
BrokerRequest brokerRequest = new BrokerRequest(UUID.randomUUID(), 1, jaxbDoc); 
    ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_BROKER_URL); 
      Connection connection = connectionFactory.createConnection();  
      connection.start(); 
      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 
      Destination destination = session.createQueue(topic); 
      MessageProducer producer = session.createProducer(destination); 
      producer.setDeliveryMode(DeliveryMode.PERSISTENT); 
      ObjectMessage objectMessage = session.createObjectMessage(brokerRequest); 
      producer.send(objectMessage); 
      connection.close(); 

的方法“getJaxbFromFile”接收中,我有一个代表这个JAXB类型的XML文档的路径,我在这个方法做的是和解组是xml到Jaxb DocumentType中以将其包含在BrokerRequest对象中。

但是,每当我尝试将objectMessage发送给代理时,我都会收到notSerializable的异常,但JaxB中涉及的所有元素都是可序列化的,这就是为什么我不明白为什么我会收到此错误。

Exception in thread "main" java.lang.RuntimeException: jaxb.mapped.elements.xsd.commons.MonetaryTotalType 
    at org.apache.activemq.command.ActiveMQObjectMessage.storeContent(ActiveMQObjectMessage.java:111) 
    at org.apache.activemq.command.ActiveMQObjectMessage.setObject(ActiveMQObjectMessage.java:162) 
    at org.apache.activemq.ActiveMQSession.createObjectMessage(ActiveMQSession.java:381) 
    at efact.alfa1lab.test.commons.MessageUtils.putMessageOnBroker(MessageUtils.java:184) 
    at test.commons.MessageUtils.main(MessageUtils.java:97) 
Caused by: java.io.NotSerializableException: jaxb.mapped.elements.xsd.commons.MonetaryTotalType 
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) 
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) 
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) 
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) 
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) 
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) 
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) 
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) 
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) 
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) 
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) 
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) 
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) 
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) 
    at org.apache.activemq.command.ActiveMQObjectMessage.storeContent(ActiveMQObjectMessage.java:105) 

如果有人能帮助我,我将非常感激,如果有人能够给我提供关于此问题的线索,我将不胜感激。

============================== 用于MonetaryType的代码如下:

import javax.xml.bind.annotation.XmlAccessType; 
import java.io.Serializable; 
import javax.xml.bind.annotation.XmlAccessorType; 
import javax.xml.bind.annotation.XmlElement; 
import javax.xml.bind.annotation.XmlType; 
import oasis.names.specification.ubl.schema.xsd.commonbasiccomponents_2.AllowanceTotalAmountType; 
import oasis.names.specification.ubl.schema.xsd.commonbasiccomponents_2.ChargeTotalAmountType; 
import oasis.names.specification.ubl.schema.xsd.commonbasiccomponents_2.LineExtensionAmountType; 
import oasis.names.specification.ubl.schema.xsd.commonbasiccomponents_2.PayableAmountType; 
import oasis.names.specification.ubl.schema.xsd.commonbasiccomponents_2.PayableRoundingAmountType; 
import oasis.names.specification.ubl.schema.xsd.commonbasiccomponents_2.PrepaidAmountType; 
import oasis.names.specification.ubl.schema.xsd.commonbasiccomponents_2.TaxExclusiveAmountType; 
import oasis.names.specification.ubl.schema.xsd.commonbasiccomponents_2.TaxInclusiveAmountType; 


/** 
* 
*   
* <pre> 
* &lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;&lt;ccts:ComponentType&gt;ABIE&lt;/ccts:ComponentType&gt;&lt;ccts:DictionaryEntryName&gt;Monetary Total. Details&lt;/ccts:DictionaryEntryName&gt;&lt;ccts:Definition&gt;Information about Monetary Totals.&lt;/ccts:Definition&gt;&lt;ccts:ObjectClass&gt;Monetary Total&lt;/ccts:ObjectClass&gt; 
*   &lt;/ccts:Component&gt; 
* </pre> 
* 
*  
* 
* <p>Java class for MonetaryTotalType complex type. 
* 
* <p>The following schema fragment specifies the expected content contained within this class. 
* 
* <pre> 
* &lt;complexType name="MonetaryTotalType"> 
* &lt;complexContent> 
*  &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
*  &lt;sequence> 
*   &lt;element ref="{urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}LineExtensionAmount" minOccurs="0"/> 
*   &lt;element ref="{urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}TaxExclusiveAmount" minOccurs="0"/> 
*   &lt;element ref="{urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}TaxInclusiveAmount" minOccurs="0"/> 
*   &lt;element ref="{urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}AllowanceTotalAmount" minOccurs="0"/> 
*   &lt;element ref="{urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}ChargeTotalAmount" minOccurs="0"/> 
*   &lt;element ref="{urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}PrepaidAmount" minOccurs="0"/> 
*   &lt;element ref="{urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}PayableRoundingAmount" minOccurs="0"/> 
*   &lt;element ref="{urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}PayableAmount"/> 
*  &lt;/sequence> 
*  &lt;/restriction> 
* &lt;/complexContent> 
* &lt;/complexType> 
* </pre> 
* 
* 
*/ 
@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "MonetaryTotalType", propOrder = { 
    "lineExtensionAmount", 
    "taxExclusiveAmount", 
    "taxInclusiveAmount", 
    "allowanceTotalAmount", 
    "chargeTotalAmount", 
    "prepaidAmount", 
    "payableRoundingAmount", 
    "payableAmount" 
}) 
public class MonetaryTotalType implements Serializable { 


    @XmlElement(name = "LineExtensionAmount", namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2") 
    protected LineExtensionAmountType lineExtensionAmount; 
    @XmlElement(name = "TaxExclusiveAmount", namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2") 
    protected TaxExclusiveAmountType taxExclusiveAmount; 
    @XmlElement(name = "TaxInclusiveAmount", namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2") 
    protected TaxInclusiveAmountType taxInclusiveAmount; 
    @XmlElement(name = "AllowanceTotalAmount", namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2") 
    protected AllowanceTotalAmountType allowanceTotalAmount; 
    @XmlElement(name = "ChargeTotalAmount", namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2") 
    protected ChargeTotalAmountType chargeTotalAmount; 
    @XmlElement(name = "PrepaidAmount", namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2") 
    protected PrepaidAmountType prepaidAmount; 
    @XmlElement(name = "PayableRoundingAmount", namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2") 
    protected PayableRoundingAmountType payableRoundingAmount; 
    @XmlElement(name = "PayableAmount", namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2", required = true) 
    protected PayableAmountType payableAmount; 

    /** 
    * 
    *    
    * <pre> 
    * &lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;&lt;ccts:ComponentType&gt;BBIE&lt;/ccts:ComponentType&gt;&lt;ccts:DictionaryEntryName&gt;Monetary Total. Line Extension Amount. Amount&lt;/ccts:DictionaryEntryName&gt;&lt;ccts:Definition&gt;The total of Line Extension Amounts net of tax and settlement discounts, but inclusive of any applicable rounding amount.&lt;/ccts:Definition&gt;&lt;ccts:Cardinality&gt;0..1&lt;/ccts:Cardinality&gt;&lt;ccts:ObjectClass&gt;Monetary Total&lt;/ccts:ObjectClass&gt;&lt;ccts:PropertyTerm&gt;Line Extension Amount&lt;/ccts:PropertyTerm&gt;&lt;ccts:RepresentationTerm&gt;Amount&lt;/ccts:RepresentationTerm&gt;&lt;ccts:DataType&gt;Amount. Type&lt;/ccts:DataType&gt; 
    *    &lt;/ccts:Component&gt; 
    * </pre> 
    * 
    *   
    * 
    * @return 
    *  possible object is 
    *  {@link LineExtensionAmountType } 
    *  
    */ 
    public LineExtensionAmountType getLineExtensionAmount() { 
     return lineExtensionAmount; 
    } 

    /** 
    * Sets the value of the lineExtensionAmount property. 
    * 
    * @param value 
    *  allowed object is 
    *  {@link LineExtensionAmountType } 
    *  
    */ 
    public void setLineExtensionAmount(LineExtensionAmountType value) { 
     this.lineExtensionAmount = value; 
    } 

    /** 
    * 
    *    
    * <pre> 
    * &lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;&lt;ccts:ComponentType&gt;BBIE&lt;/ccts:ComponentType&gt;&lt;ccts:DictionaryEntryName&gt;Monetary Total. Tax Exclusive Amount. Amount&lt;/ccts:DictionaryEntryName&gt;&lt;ccts:Definition&gt;The total amount exclusive of taxes.&lt;/ccts:Definition&gt;&lt;ccts:Cardinality&gt;0..1&lt;/ccts:Cardinality&gt;&lt;ccts:ObjectClass&gt;Monetary Total&lt;/ccts:ObjectClass&gt;&lt;ccts:PropertyTerm&gt;Tax Exclusive Amount&lt;/ccts:PropertyTerm&gt;&lt;ccts:RepresentationTerm&gt;Amount&lt;/ccts:RepresentationTerm&gt;&lt;ccts:DataType&gt;Amount. Type&lt;/ccts:DataType&gt; 
    *    &lt;/ccts:Component&gt; 
    * </pre> 
    * 
    *   
    * 
    * @return 
    *  possible object is 
    *  {@link TaxExclusiveAmountType } 
    *  
    */ 
    public TaxExclusiveAmountType getTaxExclusiveAmount() { 
     return taxExclusiveAmount; 
    } 

    /** 
    * Sets the value of the taxExclusiveAmount property. 
    * 
    * @param value 
    *  allowed object is 
    *  {@link TaxExclusiveAmountType } 
    *  
    */ 
    public void setTaxExclusiveAmount(TaxExclusiveAmountType value) { 
     this.taxExclusiveAmount = value; 
    } 

    /** 
    * 
    *    
    * <pre> 
    * &lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;&lt;ccts:ComponentType&gt;BBIE&lt;/ccts:ComponentType&gt;&lt;ccts:DictionaryEntryName&gt;Monetary Total. Tax Inclusive Amount. Amount&lt;/ccts:DictionaryEntryName&gt;&lt;ccts:Definition&gt;The total amount inclusive of taxes.&lt;/ccts:Definition&gt;&lt;ccts:Cardinality&gt;0..1&lt;/ccts:Cardinality&gt;&lt;ccts:ObjectClass&gt;Monetary Total&lt;/ccts:ObjectClass&gt;&lt;ccts:PropertyTerm&gt;Tax Inclusive Amount&lt;/ccts:PropertyTerm&gt;&lt;ccts:RepresentationTerm&gt;Amount&lt;/ccts:RepresentationTerm&gt;&lt;ccts:DataType&gt;Amount. Type&lt;/ccts:DataType&gt; 
    *    &lt;/ccts:Component&gt; 
    * </pre> 
    * 
    *   
    * 
    * @return 
    *  possible object is 
    *  {@link TaxInclusiveAmountType } 
    *  
    */ 
    public TaxInclusiveAmountType getTaxInclusiveAmount() { 
     return taxInclusiveAmount; 
    } 

    /** 
    * Sets the value of the taxInclusiveAmount property. 
    * 
    * @param value 
    *  allowed object is 
    *  {@link TaxInclusiveAmountType } 
    *  
    */ 
    public void setTaxInclusiveAmount(TaxInclusiveAmountType value) { 
     this.taxInclusiveAmount = value; 
    } 

    /** 
    * 
    *    
    * <pre> 
    * &lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;&lt;ccts:ComponentType&gt;BBIE&lt;/ccts:ComponentType&gt;&lt;ccts:DictionaryEntryName&gt;Monetary Total. Allowance Total Amount. Amount&lt;/ccts:DictionaryEntryName&gt;&lt;ccts:Definition&gt;The total amount of all allowances.&lt;/ccts:Definition&gt;&lt;ccts:Cardinality&gt;0..1&lt;/ccts:Cardinality&gt;&lt;ccts:ObjectClass&gt;Monetary Total&lt;/ccts:ObjectClass&gt;&lt;ccts:PropertyTerm&gt;Allowance Total Amount&lt;/ccts:PropertyTerm&gt;&lt;ccts:RepresentationTerm&gt;Amount&lt;/ccts:RepresentationTerm&gt;&lt;ccts:DataType&gt;Amount. Type&lt;/ccts:DataType&gt; 
    *    &lt;/ccts:Component&gt; 
    * </pre> 
    * 
    *   
    * 
    * @return 
    *  possible object is 
    *  {@link AllowanceTotalAmountType } 
    *  
    */ 
    public AllowanceTotalAmountType getAllowanceTotalAmount() { 
     return allowanceTotalAmount; 
    } 

    /** 
    * Sets the value of the allowanceTotalAmount property. 
    * 
    * @param value 
    *  allowed object is 
    *  {@link AllowanceTotalAmountType } 
    *  
    */ 
    public void setAllowanceTotalAmount(AllowanceTotalAmountType value) { 
     this.allowanceTotalAmount = value; 
    } 

    /** 
    * 
    *    
    * <pre> 
    * &lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;&lt;ccts:ComponentType&gt;BBIE&lt;/ccts:ComponentType&gt;&lt;ccts:DictionaryEntryName&gt;Monetary Total. Charge Total Amount. Amount&lt;/ccts:DictionaryEntryName&gt;&lt;ccts:Definition&gt;The total amount of all charges.&lt;/ccts:Definition&gt;&lt;ccts:Cardinality&gt;0..1&lt;/ccts:Cardinality&gt;&lt;ccts:ObjectClass&gt;Monetary Total&lt;/ccts:ObjectClass&gt;&lt;ccts:PropertyTerm&gt;Charge Total Amount&lt;/ccts:PropertyTerm&gt;&lt;ccts:RepresentationTerm&gt;Amount&lt;/ccts:RepresentationTerm&gt;&lt;ccts:DataType&gt;Amount. Type&lt;/ccts:DataType&gt; 
    *    &lt;/ccts:Component&gt; 
    * </pre> 
    * 
    *   
    * 
    * @return 
    *  possible object is 
    *  {@link ChargeTotalAmountType } 
    *  
    */ 
    public ChargeTotalAmountType getChargeTotalAmount() { 
     return chargeTotalAmount; 
    } 

    /** 
    * Sets the value of the chargeTotalAmount property. 
    * 
    * @param value 
    *  allowed object is 
    *  {@link ChargeTotalAmountType } 
    *  
    */ 
    public void setChargeTotalAmount(ChargeTotalAmountType value) { 
     this.chargeTotalAmount = value; 
    } 

    /** 
    * 
    *    
    * <pre> 
    * &lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;&lt;ccts:ComponentType&gt;BBIE&lt;/ccts:ComponentType&gt;&lt;ccts:DictionaryEntryName&gt;Monetary Total. Prepaid Amount. Amount&lt;/ccts:DictionaryEntryName&gt;&lt;ccts:Definition&gt;The total prepaid amount.&lt;/ccts:Definition&gt;&lt;ccts:Cardinality&gt;0..1&lt;/ccts:Cardinality&gt;&lt;ccts:ObjectClass&gt;Monetary Total&lt;/ccts:ObjectClass&gt;&lt;ccts:PropertyTerm&gt;Prepaid Amount&lt;/ccts:PropertyTerm&gt;&lt;ccts:RepresentationTerm&gt;Amount&lt;/ccts:RepresentationTerm&gt;&lt;ccts:DataType&gt;Amount. Type&lt;/ccts:DataType&gt; 
    *    &lt;/ccts:Component&gt; 
    * </pre> 
    * 
    *   
    * 
    * @return 
    *  possible object is 
    *  {@link PrepaidAmountType } 
    *  
    */ 
    public PrepaidAmountType getPrepaidAmount() { 
     return prepaidAmount; 
    } 

    /** 
    * Sets the value of the prepaidAmount property. 
    * 
    * @param value 
    *  allowed object is 
    *  {@link PrepaidAmountType } 
    *  
    */ 
    public void setPrepaidAmount(PrepaidAmountType value) { 
     this.prepaidAmount = value; 
    } 

    /** 
    * 
    *    
    * <pre> 
    * &lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;&lt;ccts:ComponentType&gt;BBIE&lt;/ccts:ComponentType&gt;&lt;ccts:DictionaryEntryName&gt;Monetary Total. Payable_ Rounding Amount. Amount&lt;/ccts:DictionaryEntryName&gt;&lt;ccts:Definition&gt;The rounding amount (positive or negative) added to the calculated Line Extension Total Amount to produce the rounded Line Extension Total Amount.&lt;/ccts:Definition&gt;&lt;ccts:Cardinality&gt;0..1&lt;/ccts:Cardinality&gt;&lt;ccts:ObjectClass&gt;Monetary Total&lt;/ccts:ObjectClass&gt;&lt;ccts:PropertyTermQualifier&gt;Payable&lt;/ccts:PropertyTermQualifier&gt;&lt;ccts:PropertyTerm&gt;Rounding Amount&lt;/ccts:PropertyTerm&gt;&lt;ccts:RepresentationTerm&gt;Amount&lt;/ccts:RepresentationTerm&gt;&lt;ccts:DataType&gt;Amount. Type&lt;/ccts:DataType&gt; 
    *    &lt;/ccts:Component&gt; 
    * </pre> 
    * 
    *   
    * 
    * @return 
    *  possible object is 
    *  {@link PayableRoundingAmountType } 
    *  
    */ 
    public PayableRoundingAmountType getPayableRoundingAmount() { 
     return payableRoundingAmount; 
    } 

    /** 
    * Sets the value of the payableRoundingAmount property. 
    * 
    * @param value 
    *  allowed object is 
    *  {@link PayableRoundingAmountType } 
    *  
    */ 
    public void setPayableRoundingAmount(PayableRoundingAmountType value) { 
     this.payableRoundingAmount = value; 
    } 

    /** 
    * 
    *    
    * <pre> 
    * &lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;&lt;ccts:ComponentType&gt;BBIE&lt;/ccts:ComponentType&gt;&lt;ccts:DictionaryEntryName&gt;Monetary Total. Payable_ Amount. Amount&lt;/ccts:DictionaryEntryName&gt;&lt;ccts:Definition&gt;The total amount to be paid.&lt;/ccts:Definition&gt;&lt;ccts:Cardinality&gt;1&lt;/ccts:Cardinality&gt;&lt;ccts:ObjectClass&gt;Monetary Total&lt;/ccts:ObjectClass&gt;&lt;ccts:PropertyTermQualifier&gt;Payable&lt;/ccts:PropertyTermQualifier&gt;&lt;ccts:PropertyTerm&gt;Amount&lt;/ccts:PropertyTerm&gt;&lt;ccts:RepresentationTerm&gt;Amount&lt;/ccts:RepresentationTerm&gt;&lt;ccts:DataType&gt;Amount. Type&lt;/ccts:DataType&gt; 
    *    &lt;/ccts:Component&gt; 
    * </pre> 
    * 
    *   
    * 
    * @return 
    *  possible object is 
    *  {@link PayableAmountType } 
    *  
    */ 
    public PayableAmountType getPayableAmount() { 
     return payableAmount; 
    } 

    /** 
    * Sets the value of the payableAmount property. 
    * 
    * @param value 
    *  allowed object is 
    *  {@link PayableAmountType } 
    *  
    */ 
    public void setPayableAmount(PayableAmountType value) { 
     this.payableAmount = value; 
    } 

} 

再次提前致谢。

回答

2

它看起来像您将XML文件解组到自定义类,其中之一是类型jaxb.mapped.elements.xsd.commons.MonetaryTotalType。这个类不是可序列化的,导致异常被抛出。通常你应该通过实现Serializable接口将该类标记为可序列化。

此外,请考虑使用包装名称前缀使用您的产品或至少公司名称;有一个名为jaxb的根包会令人困惑,因为它不是直接显而易见的,而是你自己的代码。

+0

感谢您的回应,您说的是有道理的,但事实是,我的XML使用的所有类型都实现了Serializable接口,当我使用该模式生成所有类型时,所有类型都生成了实现Serializable。这就是为什么我不明白如何解决问题。非常好奇的是,这个功能在生产环境中运行,但不在我的开发电脑中运行。我试着发送一个新的DocumentType()实例,当我运行应用程序时,它可以工作,但是当我使用“setMonetaryTotalType()”时,它向我显示了同样的错误。非常感谢你 –

+0

你可以发布'MonetaryTotalType'的源代码吗?另外,生产环境与开发PC完全相同(版本等)? – praseodym

+0

是的,它是相同的版本和代码,没有区别。 –

0

我有类似的问题。我的可序列化对象有一个不可序列化的成员对象变量。使它实现可序列化后,错误消失了。

相关问题