use of org.exolab.castor.xml.MarshalException in project ACS by ACS-Community.
the class ACSCategoryDAOImpl method flushCategories.
public void flushCategories(Categories cats) {
if (conf == null || !conf.isWriteable())
throw new IllegalStateException("no writable configuration accessor");
if (cats == null)
throw new IllegalArgumentException("Null Categories argument");
StringWriter FFWriter = new StringWriter();
Marshaller FF_marshaller;
try {
FF_marshaller = new Marshaller(FFWriter);
} catch (IOException e) {
e.printStackTrace();
return;
}
FF_marshaller.setValidation(false);
try {
FF_marshaller.marshal(cats);
} catch (MarshalException e) {
e.printStackTrace();
return;
} catch (ValidationException e) {
e.printStackTrace();
return;
}
try {
conf.deleteConfiguration(CATEGORY_DEFINITION_PATH);
conf.addConfiguration(CATEGORY_DEFINITION_PATH, FFWriter.toString().replaceFirst("xsi:type=\".*\"", ""));
} catch (org.omg.CORBA.UNKNOWN e) {
try {
conf.addConfiguration(CATEGORY_DEFINITION_PATH, FFWriter.toString().replaceFirst("xsi:type=\".*\"", ""));
} catch (Exception e1) {
e1.printStackTrace();
}
} catch (CDBXMLErrorEx e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
throw new IllegalStateException("Category already exists");
}
}
use of org.exolab.castor.xml.MarshalException in project ACS by ACS-Community.
the class DynamicProxyFactoryTest method testInvalidXml.
public void testInvalidXml() throws DynWrapperException {
XmlComponentOperations serverProxy = createServerProxy();
assertNotNull(serverProxy);
XmlEntityStruct entStructObsProp = serverProxy.createObsProposal();
XmlEntityStructHolder xesh = new XmlEntityStructHolder();
// send invalid xml
entStructObsProp.xmlString = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" + // "<ns1:ObsProposal xmlns:ns1=\"AlmaTest/ObsProposal\">" +
" <ns1:ObsProposalEntity entityIdEncrypted=\"ljasd;ljfa;lsfd\"" + " entityId=\"uid://X0000000000000000/X00000001\" entityTypeName=\"ObsProposal\"/>" + " <ns1:PerformanceGoals>peak performance enduring a 24-7-365 schedule.</ns1:PerformanceGoals>" + "</ns1:ObsProposal>";
try {
serverProxy.xmlInOutMethod(entStructObsProp, xesh);
fail("invalid XML should have caused an exception");
} catch (UndeclaredThrowableException e) {
Throwable cause = e.getCause();
assertTrue(cause instanceof DynWrapperException);
Throwable cause2 = cause.getCause();
assertTrue(cause2 instanceof MarshalException);
assertTrue(((MarshalException) cause2).getCause() instanceof org.xml.sax.SAXException);
}
}
use of org.exolab.castor.xml.MarshalException in project OpenClinica by OpenClinica.
the class MetaDataReportBean method handleLoadCastor.
private String handleLoadCastor(RulesPostImportContainer rpic) {
try {
// Create Mapping
Mapping mapping = new Mapping();
mapping.loadMapping(getCoreResources().getURL("mappingMarshallerMetadata.xml"));
// Create XMLContext
XMLContext xmlContext = new XMLContext();
xmlContext.setProperty(XMLConfiguration.NAMESPACES, "true");
xmlContext.addMapping(mapping);
StringWriter writer = new StringWriter();
Marshaller marshaller = xmlContext.createMarshaller();
// marshaller.setNamespaceMapping("castor", "http://castor.org/sample/mapping/");
marshaller.setWriter(writer);
marshaller.marshal(rpic);
String result = writer.toString();
String newResult = result.replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "");
return newResult;
} catch (FileNotFoundException ex) {
throw new OpenClinicaSystemException(ex.getMessage(), ex.getCause());
} catch (IOException ex) {
throw new OpenClinicaSystemException(ex.getMessage(), ex.getCause());
} catch (MarshalException e) {
throw new OpenClinicaSystemException(e.getMessage(), e.getCause());
} catch (ValidationException e) {
throw new OpenClinicaSystemException(e.getMessage(), e.getCause());
} catch (MappingException e) {
throw new OpenClinicaSystemException(e.getMessage(), e.getCause());
} catch (Exception e) {
throw new OpenClinicaSystemException(e.getMessage(), e.getCause());
}
}
use of org.exolab.castor.xml.MarshalException in project OpenClinica by OpenClinica.
the class DownloadRuleSetXmlServlet method handleLoadCastor.
private FileWriter handleLoadCastor(FileWriter writer, RulesPostImportContainer rpic) {
try {
// Create Mapping
Mapping mapping = new Mapping();
mapping.loadMapping(getCoreResources().getURL("mappingMarshaller.xml"));
// Create XMLContext
XMLContext xmlContext = new XMLContext();
xmlContext.addMapping(mapping);
Marshaller marshaller = xmlContext.createMarshaller();
marshaller.setWriter(writer);
marshaller.marshal(rpic);
return writer;
} catch (FileNotFoundException ex) {
throw new OpenClinicaSystemException(ex.getMessage(), ex.getCause());
} catch (IOException ex) {
throw new OpenClinicaSystemException(ex.getMessage(), ex.getCause());
} catch (MarshalException e) {
throw new OpenClinicaSystemException(e.getMessage(), e.getCause());
} catch (ValidationException e) {
throw new OpenClinicaSystemException(e.getMessage(), e.getCause());
} catch (MappingException e) {
throw new OpenClinicaSystemException(e.getMessage(), e.getCause());
} catch (Exception e) {
throw new OpenClinicaSystemException(e.getMessage(), e.getCause());
}
}
use of org.exolab.castor.xml.MarshalException in project opennms by OpenNMS.
the class QoSDimpl2 method onStart.
/**
* The start() method loads the configuration for the QosD daemon and registers for events
*/
@Override
protected void onStart() {
String jnp_host;
//Get a reference to the QosD logger instance assigned by OpenNMS
LOG.info("Qosd.start(): Preparing to load configuration");
// set application context for AlarmListConnectionManager
try {
LOG.debug("Qosd.start():setting application context for alarmListConnectionManager: m.context.toString:{}", m_context.toString());
alarmListConnectionManager.setApplicationContext(m_context);
} catch (Exception ex) {
throw new IllegalArgumentException("Qosd.start(): Error setting spring application context: " + ex);
}
//all the UEIs that will be sent as alarms if useUeiList = true.
try {
config = QoSDConfigFactory.getConfig();
LOG.info("QoSD QoSD-configuration.xml - Configuration Loaded Successfully");
// loading list of UEI's which trigger this daemon
triggerUeiList = new Hashtable<String, String>();
String[] temp = config.getEventlist().getUei();
for (int i = 0; i < temp.length; i++) triggerUeiList.put(temp[i], "1");
} catch (MarshalException mrshl_ex) {
//write an error message to the log file
LOG.error("Qosd.start(): Marshal Exception thrown whilst getting QoSD configuration\n\t\t\t\tEnsure tags have correct names", mrshl_ex);
throw new UndeclaredThrowableException(mrshl_ex);
} catch (ValidationException vldtn_ex) {
LOG.error("Qosd.start(): Validation Exception thrown whilst getting QoSD configuration\n\t\t\t\tMake sure all the tags are formatted correctly within QoSD-configuration.xml", vldtn_ex);
throw new UndeclaredThrowableException(vldtn_ex);
} catch (IOException io_ex) {
//Get the OpenNMS home directory
String configFile = System.getProperty("opennms.home");
// if there is '/' at the end...
if (configFile.endsWith(java.io.File.separator)) {
// ... remove it so that we can compose a valid filename
configFile = configFile.substring(0, configFile.length() - 1);
}
configFile += java.io.File.separator + "etc" + java.io.File.separator + "QoSD-configuration.xml";
LOG.error("Qosd.start(): Failed to load configuration file: {}\n\t\t\t\tMake sure that it exists", configFile, io_ex);
throw new UndeclaredThrowableException(io_ex);
}
if (useUeiList)
LOG.info("Qosd.start(): useUeiList = true = using QoSD QoSD-configuration.xml UEI list selects which alarms are sent");
try {
//Load the properties file containing the JNDI connection address etc.
props = PropertiesLoader.getInstance();
} catch (FileNotFoundException fnf_ex) {
//record in log that the properties file could not be found
String propertiesFilename = System.getProperty("propertiesFile");
LOG.error("Qosd.start(): Could not find properties file: {}", propertiesFilename, fnf_ex);
throw new UndeclaredThrowableException(fnf_ex);
} catch (IOException io_ex) {
//record in log that the properties file could not be read
String propertiesFilename = System.getProperty("propertiesFile");
LOG.error("Qosd.start(): Could not read from properties file: {}\n\t\t\t\tPlease check the file permissions", propertiesFilename, io_ex);
throw new UndeclaredThrowableException(io_ex);
}
LOG.info("Qosd.start(): QosD Properties File Loaded");
if (System.getSecurityManager() == null)
System.setSecurityManager(new RMISecurityManager());
/*The following if-statement checks if the naming provider property exists in
* the properties file. If it does then it stores it in the jnp_host string. If
* it doesn't then it uses a default naming provider string "jbossjmsserver1:1099" and
* assigns it to jnp_host, stating this in the log file.
*/
if (props.getProperty("org.openoss.opennms.spring.qosd.naming.provider") != null) {
jnp_host = (String) props.getProperty("org.openoss.opennms.spring.qosd.naming.provider");
LOG.info("Using JNP: {}", jnp_host);
} else {
LOG.warn("Qosd.start(): Naming provider property not set, Using default: jnp://jbossjmsserver1:1099");
jnp_host = "jnp://jbossjmsserver1:1099";
}
/* Fill a new properties object with the properties supplied in
* the properties file.
*/
env = new Properties();
env.setProperty("java.naming.provider.url", jnp_host);
env.setProperty("java.naming.factory.initial", props.getProperty("org.openoss.opennms.spring.qosd.naming.contextfactory"));
env.setProperty("java.naming.factory.url.pkgs", props.getProperty("org.openoss.opennms.spring.qosd.naming.pkg"));
// start a new connection manager thread
try {
alarmListConnectionManager.init(props, env);
alarmListConnectionManager.start();
//wait until the AlarmListConnectionManager has connected to bean
LOG.info("Qosd.start(): Waiting Connection Manager Thread to get JMS connection");
while (alarmListConnectionManager.getStatus() != AlarmListConnectionManager.CONNECTED) ;
LOG.info("Qosd.start(): Connection Manager Thread JMS connection successfully registered");
LOG.info("Qosd.start(): openNMS just restarted - sending alarm list rebuilt event");
//send alarm list rebuilt event to EJB via the connection manager thread.
// send an alarm list rebuilt event
alarmListConnectionManager.reset_list("openNMS just restarted - alarm list rebuilt. Time:" + new Date());
} catch (Throwable iae) {
LOG.error("Qosd.start(): Exception caught starting alarmListConnectionManager", iae);
throw new UndeclaredThrowableException(iae);
}
// setting up ossDao to access the OpenNMS database
try {
LOG.debug("Qosd.start(): Using ossDao instance: {}", (ossDao == null ? "IS NULL" : ossDao.toString()));
LOG.info("Qosd.start(): Initialising the Node and alarm Caches");
ossDao.init();
// TODO REMOVE
// ossDao.updateNodeCaches();
LOG.info("Qosd.start(): Set up ossDao call back interface to QoSD for forwarding changes to alarm list");
ossDao.setQoSD(this);
} catch (Throwable ex) {
LOG.error("Qosd.start(): Exception caught setting callback interface from ossDao", ex);
throw new UndeclaredThrowableException(ex);
}
// set up thread to handle incoming OpenNMS events
LOG.info("Qosd.start(): initialising OpenNMSEventHandlerThread");
try {
openNMSEventHandlerThread = new OpenNMSEventHandlerThread();
openNMSEventHandlerThread.setOssDao(ossDao);
openNMSEventHandlerThread.init();
openNMSEventHandlerThread.start();
} catch (Throwable ex) {
LOG.error("Qosd.start(): Exception caught initialising OpenNMSEventHandlerThread", ex);
throw new UndeclaredThrowableException(ex);
}
//send all the alarmList to EJB via the connection manager thread.
LOG.info("Qosd.start(): openNMS just restarted - sending all alarms in rebuilt alarm list");
try {
//this.sendAlarms(); // interface has just started up. Send all alarms
openNMSEventHandlerThread.sendAlarmList();
} catch (Exception e) {
LOG.error("Qosd.start(): problem sending initial alarm list Error:", e);
}
// register listener for OpenNMS events
LOG.info("Qosd.start(): Starting OpenNMS event listener");
try {
registerListener();
} catch (Exception e) {
LOG.error("Qosd.start(): problem registering event listener Error:", e);
}
// TODO - replace ack handler code with QoSDrx receiver code
LOG.info("QoSD Started");
}
Aggregations