falcon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chandrasekhar M <mail2chandrasek...@gmail.com>
Subject Issue with Falcon API 0.9 - Creating a BundleApp
Date Thu, 04 Aug 2016 10:49:09 GMT
Hi, 

I am trying to use the API like so, creating a BundleApp via API.  I am using Falcon 0.9 jars.


private static void generateBundle() throws FalconException{
		
		BUNDLEAPP bundleapp = new BUNDLEAPP();
		//BUNDLEAPP bundle = unmarshalBundleapp(bundleTemplate);
		bundleapp.setName("My-Bundle-App");
		
		CONTROLS controls = new CONTROLS();
		controls.setKickOffTime(sdf.format(new Date()));
		bundleapp.setControls(controls);
		
		COORDINATOR coordinator = new COORDINATOR();
		coordinator.setName("My-Bundle-Coordinator");
		coordinator.setAppPath("/user/cloudera/oozieco");
		bundleapp.getCoordinator().add(coordinator);
		
		JAXBElement<BUNDLEAPP> bApp = new org.apache.falcon.oozie.bundle.ObjectFactory().createBundleApp(bundleapp);
		
		try {
			Marshaller buMarshaller = OozieUtils.BUNDLE_JAXB_CONTEXT.createMarshaller();
			//Marshaller buMarshaller = JAXBContext.newInstance(BUNDLEAPP.class).createMarshaller();
			buMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
			
			SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
			Schema schema = schemaFactory.newSchema(GenerateCoordinator.class.getResource("/oozie-bundle-0.2.xsd"));
			buMarshaller.setSchema(schema);
			
			buMarshaller.marshal(bApp, new OutputStreamWriter(System.out));
			
		} catch (JAXBException | SAXException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

But when I execute this code, I get an exception 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
javax.xml.bind.MarshalException
 - with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 0; columnNumber: 0; cvc-elt.1.a: Cannot find the
declaration of element 'bundle-app'.]
	at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:323)
	at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:249)
	at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:116)
	at com.ligadata.oozie.check.GenerateCoordinator.generateBundle(GenerateCoordinator.java:84)
	at com.ligadata.oozie.check.GenerateCoordinator.main(GenerateCoordinator.java:52)
Caused by: org.xml.sax.SAXParseException; lineNumber: 0; columnNumber: 0; cvc-elt.1.a: Cannot
find the declaration of element 'bundle-app'.
	at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source)
	at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown Source)
	at org.apache.xerces.jaxp.validation.ValidatorHandlerImpl.startElement(Unknown Source)
	at org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:551)
	at com.sun.xml.bind.v2.runtime.output.SAXOutput.endStartTag(SAXOutput.java:128)
	at com.sun.xml.bind.v2.runtime.output.ForkXmlOutput.endStartTag(ForkXmlOutput.java:106)
	at com.sun.xml.bind.v2.runtime.XMLSerializer.endAttributes(XMLSerializer.java:310)
	at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:699)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:156)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:193)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:321)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:328)
	at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:76)
	at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:498)
	at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:320)
	... 4 more

Not sure what I am doing wrong. Similar code works for Coordinator App and Workflow App. 

Thanks in Advance.
Chandra


Mime
View raw message