Stuck with JAXB - XML ​​exception without marshal

Can anyone help me get out of this exception.

unexpected element (uri: " http://cpps.xxx.com/splm-service ", local: "PartInquiryService"). Expected Items: (none)

Here is the code and xml that I use

File file = new File("PartInquiryService.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(PartInquiryService.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); PartInquiryService partInqService = (PartInquiryService)jaxbUnmarshaller.unmarshal(file); 

Here is xml am using it. I get this xml as an answer from MQ

 <PartInquiryService xmlns="http://cpps.xxx.com/splm-service" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <control> <type>inquiryWithServiceWindow</type> <correlationId format="hex">A10488237F3B7734A10488237F3B7734A10488237F3B7734</correlationId> <origin> <system>CPPS-SPLM</system> <id>MP2ZCP5</id> <at timeZone="UTC"> <date format="ISO">2008-12-12</date> <time format="ISO">20:12:48</time> </at> </origin> <destination> <system>SPLM_GUI</system> <id>SPLM_01</id> </destination> </control> <partInquiry> <customerSystemkey>123456789123456</customerSystemkey> <countryCode type="IBM">788</countryCode> <partnumber>0000039M5123</partnumber> <machType>1722</machType> <zipcode>1066 VH</zipcode> </partInquiry> <inquiryResult> <errorMessage>Invalid part number XXXXXXXXXXXX received</errorMessage> <zipcodeUsed>NL 1066</zipcodeUsed> <timeZone>MSK</timeZone> <currency>EUR</currency> <partnumber> <id>0000039M5123</id> <subType>REQ</subType> <description>POWER CORD</description> <subRank>0</subRank> <weigth>10</weigth> <length>12</length> <width>9</width> <height>11</height> <sellingPrice currency="EUR">12.030</sellingPrice> <rohsInd>C</rohsInd> </partnumber> <partnumber> <id>0000040K8888</id> <subType>ALT</subType> <description>POWER CORD</description> <subRank>0</subRank> <weigth>10</weigth> <length>12</length> <width>9</width> <height>11</height> <sellingPrice currency="EUR">12.030</sellingPrice> <rohsInd>D</rohsInd> </partnumber> <partnumber> <id>0000012J1234</id> <subType>SUB</subType> <description>POWER CORD</description> <subRank>-1</subRank> <weigth>10</weigth> <length>12</length> <width>9</width> <height>11</height> <sellingPrice currency="EUR">12.030</sellingPrice> <rohsInd>N</rohsInd> </partnumber> <sourceLocation> <locId>788-5000</locId> <description>CENTRAL BUFFER VENLO</description> <deliveryOption> <serviceWindow>Sameday 2hr</serviceWindow> <logisticCost>88.00</logisticCost> <date format="ISO">2014-08-24</date> <time format="ISO">10:56:00</time> </deliveryOption> <deliveryOption> <serviceWindow>Next day 16:00</serviceWindow> <logisticCost>10.00</logisticCost> <date format="ISO">2014-08-25</date> <time format="ISO">16:00:00</time> </deliveryOption> <partInventory> <id>0000039M5123</id> <availableStock>1</availableStock> </partInventory> <partInventory> <id>0000040K8888</id> <availableStock>5</availableStock> </partInventory> </sourceLocation> <sourceLocation> <locId>821-9200</locId> <description>CRS ST PETERSBURG</description> <deliveryOption> <serviceWindow>Sameday 2hr</serviceWindow> <logisticCost>88.00</logisticCost> <date format="ISO">2014-08-24</date> <time format="ISO">10:56:00</time> </deliveryOption> <deliveryOption> <serviceWindow>Next day 16:00</serviceWindow> <logisticCost>10.00</logisticCost> <date format="ISO">2014-08-25</date> <time format="ISO">16:00:00</time> </deliveryOption> <partInventory> <id>0000039M5123</id> <availableStock>1</availableStock> </partInventory> <partInventory> <id>0000040K8888</id> <availableStock>5</availableStock> </partInventory> </sourceLocation> <sourceLocation> <locId>821-1102</locId> <description>LSH MOSCOW DUTY PAID</description> <deliveryOption> <serviceWindow>Sameday 2hr</serviceWindow> <logisticCost>88.00</logisticCost> <date format="ISO">2014-08-24</date> <time format="ISO">10:56:00</time> </deliveryOption> <deliveryOption> <serviceWindow>Next day 16:00</serviceWindow> <logisticCost>10.00</logisticCost> <date format="ISO">2014-08-25</date> <time format="ISO">16:00:00</time> </deliveryOption> <partInventory> <id>0000039M5123</id> <availableStock>1</availableStock> </partInventory> <partInventory> <id>0000040K8888</id> <availableStock>5</availableStock> </partInventory> </sourceLocation> </inquiryResult> </PartInquiryService> 

Here is PartInquiryService.java

 public class PartInquiryService { private Control control; private PartInquiry partInqury; private InquiryResult inquiryResult; public Control getControl() { return control; } public void setControl(Control control) { this.control = control; } public PartInquiry getPartInqury() { return partInqury; } public void setPartInqury(PartInquiry partInqury) { this.partInqury = partInqury; } public InquiryResult getInquiryResult() { return inquiryResult; } public void setInquiryResult(InquiryResult inquiryResult) { this.inquiryResult = inquiryResult; } } 
+5
source share
1 answer

Add PartInquiryService.java to your class

 @XmlRootElement(name = "PartInquiryService" ,namespace="http://cpps.xxx.com/splm-service") public class PartInquiryService { 

in the same package puts this class ( package-info.java )

 @javax.xml.bind.annotation.XmlSchema(namespace = "http://cpps.xxx.com/splm-service", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) package your.package; 

Note: the namespace in @XmlRootElement is not needed in this case, but I used this information for simplification.

+5
source

Source: https://habr.com/ru/post/1206322/


All Articles