How to use XML to get particular list of values using XPATH in JAXB

Using JAXB I need to use the SOAP XML to read the particular list of values using XPath

 String example  = "<SOAPENV:Envelope xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAPENV:Body><rpc:distributebundledPromotes xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rpc="http://bsa.xxx.bat.com/paf/capabilities"><ListofbundledPromoteds><bundledPromoted operation="upsert">
    <ListOfOrganization><Organization operation="upsert"><Name>bat Volume</Name><PrimaryFlag>Y</PrimaryFlag></Organization></ListOfOrganization><ListOfProductLine><ProductLine operation="upsert"><ProductLineName>Bundle</ProductLineName><PrimaryFlag>Y</PrimaryFlag></ProductLine></ListOfProductLine><DistributedPromotedProductComponents><PromotedProductComponents operation="upsert"><DC1>0</DC1><MC1>1</MC1><MC2>0</MC2><ProductName>Contract</ProductName><PartNumber>Contract Value</PartNumber><ComponentType>Components</ComponentType><ListOfIssPromotionItemAttributeforImport/><PromSaleableFlag/><IntegrationId>RECContract Value</IntegrationId></PromotedProductComponents><PromotedProductComponents operation="upsert"><DC1>0</DC1><MC1>1</MC1><MC2>0</MC2><ProductName>DISCOUNT</ProductName><PartNumber>Discount PP</PartNumber><ComponentType>Components</ComponentType><ListOfIssPromotionItemAttributeforImport/><PromSaleableFlag/><IntegrationId>RECS0154672</IntegrationId></PromotedProductComponents></DistributedPromotedProductComponents><distributedPromotionPriceComponents/><ListOfMetaData><MetaData operation="upsert"><Name>BPromoted</Name><Value>BP value</Value></MetaData></ListOfMetaData><PromotionClassRelationList><ClassData operation="upsert"><Name>PCCC</Name><Value>Packed Contract</Value></ClassData><ClassData operation="upsert"><Name>BACC</Name><Value>Packed Contract_1</Value></ClassData></PromotionClassRelationList></bundledPromoted></ListofbundledPromoteds></rpc:distributebundledPromotes></SOAPENV:Body></SOAPENV:Envelope>";

        ByteArrayInputStream bas=new ByteArrayInputStream(example.getBytes());
        JAXBContext jc = JAXBContext.newInstance(DistributedPromotedProductComponents.class);
        Unmarshaller unmarshaller = jc.createUnmarshaller();
        SOAPMessage message = MessageFactory.newInstance().createMessage(null,
                bas);
        JAXBElement<DistributedPromotedProductComponents> jb = unmarshaller.unmarshal(message.getSOAPBody(), DistributedPromotedProductComponents.class);

        DistributedPromotedProductComponents DistributedPromotedProductComponents = jb.getValue();
        System.out.println(DistributedPromotedProductComponents.getPromotedProductComponents());


        @XmlRootElement(name="SOAPENV:Body")
    public class DistributedPromotedProductComponents {

        @XmlPath("rpc:distributebundledPromotes/ListofBundledPromotes/bundledPromoted/DistributedPromotedProductComponents")
    private List<PromotedProductComponents> PromotedProductComponents;


        public List<PromotedProductComponents> getPromotedProductComponents() {
            return PromotedProductComponents;
        }


        public void setPromotedProductComponents(List<PromotedProductComponents> PromotedProductComponents) {
            this.PromotedProductComponents = PromotedProductComponents;
        }

}

But I am getting data as null but I need to get the list of values