Changeset 25423
- Timestamp:
- 2012-04-19T14:58:44+12:00 (12 years ago)
- Location:
- main/trunk/greenstone3/src/java/org/greenstone/gsdl3
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/TransformingReceptionist.java
r25301 r25423 618 618 619 619 Transformer preProcessor = transformerFactory.newTransformer(new DOMSource(preprocessingXsl)); 620 preProcessor.setErrorListener(new XMLTransformer.TransformErrorListener( ));620 preProcessor.setErrorListener(new XMLTransformer.TransformErrorListener(preprocessingXsl)); 621 621 DOMResult result = new DOMResult(); 622 622 result.setNode(skinAndLibraryDoc); … … 864 864 transformer.transform(domSource, result); 865 865 content = writer.toString(); 866 System.out.println("Change the & to &Amp; for proper debug disp ay");866 System.out.println("Change the & to &Amp; for proper debug display"); 867 867 content = StringUtils.replace(content, "&", "&"); 868 868 writer.flush(); -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/util/GSXML.java
r25313 r25423 31 31 import javax.xml.transform.stream.StreamResult; 32 32 import javax.xml.transform.dom.DOMSource; 33 import javax.xml.transform.OutputKeys; 33 34 34 35 import java.util.Map; … … 1234 1235 } 1235 1236 1236 public static void elementToLogAsString(Element e) 1237 { 1238 try 1239 { 1240 TransformerFactory tf = TransformerFactory.newInstance(); 1241 Transformer trans = tf.newTransformer(); 1242 StringWriter sw = new StringWriter(); 1243 trans.transform(new DOMSource(e), new StreamResult(sw)); 1244 System.err.println(sw.toString()); 1245 } 1246 catch (Exception ex) 1247 { 1248 System.err.println("couldn't write " + e + " to log"); 1249 } 1237 public static void elementToLogAsString(Element e, boolean indent) 1238 { 1239 String str = elementToString(e, indent); 1240 System.err.println(str); 1241 logger.error(str); 1242 } 1243 1244 public static String elementToString(Element e, boolean indent) 1245 { 1246 String str = "**********START*************\n"; 1247 try { 1248 TransformerFactory tf = TransformerFactory.newInstance(); 1249 Transformer trans = tf.newTransformer(); 1250 StringWriter sw = new StringWriter(); 1251 if(indent) { 1252 trans.setOutputProperty(OutputKeys.INDENT, "yes"); 1253 } else { 1254 trans.setOutputProperty(OutputKeys.INDENT, "no"); 1255 } 1256 trans.transform(new DOMSource(e), new StreamResult(sw)); 1257 str += sw.toString(); 1258 } 1259 catch (Exception ex) { 1260 str += "Exception: couldn't write " + e + " to log"; 1261 } 1262 finally { 1263 str += "\n***********************\n"; 1264 return str; 1265 } 1250 1266 } 1251 1267 -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/util/XMLTransformer.java
r24472 r25423 42 42 import java.io.StringReader; 43 43 import java.io.StringWriter; 44 import java.io.BufferedReader; 45 import java.io.FileReader; 44 46 import java.io.File; 45 47 import java.util.HashMap; … … 116 118 // Use the TransformerFactory to process the stylesheet Source and generate a Transformer. 117 119 Transformer transformer = this.t_factory.newTransformer(new StreamSource(stylesheet)); 118 transformer.setErrorListener(new TransformErrorListener( ));120 transformer.setErrorListener(new TransformErrorListener(stylesheet)); 119 121 120 122 // Use the Transformer to transform an XML Source and send the output to a Result object. … … 142 144 // Use the TransformerFactory to process the stylesheet Source and generate a Transformer. 143 145 Transformer transformer = this.t_factory.newTransformer(new DOMSource(stylesheet)); 144 transformer.setErrorListener(new TransformErrorListener( ));146 transformer.setErrorListener(new TransformErrorListener(stylesheet)); 145 147 if (parameters != null) { 146 148 Set params = parameters.entrySet(); … … 182 184 Transformer transformer = this.t_factory.newTransformer(new DOMSource(stylesheet)); 183 185 logger.info("XMLTransformer transformer is " + transformer); 184 transformer.setErrorListener(new TransformErrorListener( ));186 transformer.setErrorListener(new TransformErrorListener(stylesheet)); 185 187 if (parameters != null) { 186 188 Set params = parameters.entrySet(); … … 214 216 try { 215 217 Transformer transformer = this.t_factory.newTransformer(new StreamSource(stylesheet)); 216 transformer.setErrorListener(new TransformErrorListener( ));218 transformer.setErrorListener(new TransformErrorListener(stylesheet)); 217 219 DOMResult result = new DOMResult(); 218 220 transformer.transform(new StreamSource(source), result); … … 233 235 try { 234 236 Transformer transformer = this.t_factory.newTransformer(new StreamSource(stylesheet)); 235 transformer.setErrorListener(new TransformErrorListener( ));237 transformer.setErrorListener(new TransformErrorListener(stylesheet)); 236 238 DOMResult result = new DOMResult(docDocType); 237 239 transformer.transform(new StreamSource(source), result); … … 320 322 // be retrieved and be used to generate an xhtml error page. 321 323 static public class TransformErrorListener implements ErrorListener { 322 protected String errorMessage = null; 323 324 // Receive notification of a recoverable error. 325 public void error(TransformerException exception) { 326 handleError("Error:\n", exception); 327 } 328 // Receive notification of a non-recoverable error. 329 public void fatalError(TransformerException exception) { 330 handleError("Fatal Error:\n", exception); 331 } 332 // Receive notification of a warning. 333 public void warning(TransformerException exception) { 334 handleError("Warning:\n", exception); 335 } 324 protected String errorMessage = null; 325 protected String stylesheet = null; 326 protected String file = null; 327 328 public TransformErrorListener(String xslt) { 329 this.stylesheet = xslt; 330 } 331 332 public TransformErrorListener(Document xslt) { 333 //this.stylesheet = GSXML.xmlNodeToString(xslt); 334 this.stylesheet = GSXML.elementToString(xslt.getDocumentElement(), true); 335 } 336 337 public TransformErrorListener(File xslt) { 338 stylesheet = ""; 339 file = xslt.getAbsolutePath(); 340 String error = "Can't locate stylesheet file: " + xslt; 341 342 if(!xslt.exists()) { 343 stylesheet = error; 344 System.err.println("@@@@@@@ " + error); 345 return; 346 } 347 try { 348 BufferedReader in = new BufferedReader(new FileReader(xslt)); 349 String line = ""; 350 while((line = in.readLine()) != null) { 351 stylesheet = stylesheet + line + "\n"; 352 } 353 in.close(); 354 in = null; 355 } catch(Exception e) { 356 stylesheet = error; 357 System.err.println("Exception reading file: " + xslt.getAbsolutePath()); 358 e.printStackTrace(); 359 } 360 } 361 362 // Receive notification of a recoverable error. 363 public void error(TransformerException exception) { 364 handleError("Error:\n", exception); 365 } 366 // Receive notification of a non-recoverable error. 367 public void fatalError(TransformerException exception) { 368 handleError("Fatal Error:\n", exception); 369 } 370 // Receive notification of a warning. 371 public void warning(TransformerException exception) { 372 handleError("Warning:\n", exception); 373 } 336 374 337 public String toString(TransformerException e) { 338 String location = e.getLocationAsString(); 339 if(location == null) { 340 return e.getMessage(); 341 } 342 return e.getMessage() + "\n" + location; 343 } 344 345 // clears the errorPage variable after first call to this method 346 public String getErrorMessage() { 347 String errMsg = this.errorMessage; 348 if(this.errorMessage != null) { 349 this.errorMessage = null; 350 } 351 return errMsg; 352 } 353 354 // sets the errorMessage member variable to the data stored in the exception 355 // and writes the errorMessage to the logger and tomcat's System.err 356 protected void handleError(String errorType, TransformerException exception) { 357 this.errorMessage = errorType + toString(exception); 358 System.err.println("\n****Error transforming xml:\n" + this.errorMessage + "\n****\n"); 359 logger.error(this.errorMessage); 360 } 375 public String toString(TransformerException e) { 376 String msg = "Exception encountered was:\n\t"; 377 String location = e.getLocationAsString(); 378 if(location != null) { 379 msg = msg + "Location: " + location + "\n\t"; 380 } 381 382 return msg + "Message: " + e.getMessage(); 383 } 384 385 // clears the errorPage variable after first call to this method 386 public String getErrorMessage() { 387 String errMsg = this.errorMessage; 388 if(this.errorMessage != null) { 389 this.errorMessage = null; 390 } 391 return errMsg; 392 } 393 394 // sets the errorMessage member variable to the data stored in the exception 395 // and writes the errorMessage to the logger and tomcat's System.err 396 protected void handleError(String errorType, TransformerException exception) { 397 this.errorMessage = errorType + toString(exception); 398 if(file != null) { 399 this.errorMessage = this.errorMessage + "\nfilename: " + file; 400 } 401 this.errorMessage += "\nException CAUSE:\n" + exception.getCause(); 402 System.err.println("\n****Error transforming xml:\n" + this.errorMessage + "\n****\n"); 403 System.err.println("Stylesheet was:\n" + this.stylesheet + "\n\n"); 404 logger.error(this.errorMessage); 405 } 361 406 } 362 407 }
Note:
See TracChangeset
for help on using the changeset viewer.