2015-12-04 57 views
0

我重新閱讀了stackoverflow中的很多主題,但沒有答案爲我工作。禁用來自外部Lib類的警告消息

是什麼問題:我有java代碼中,我做的事:

Requirement req = response.getEntity(Requirement.class); 

而且具有警告:

WARNING: Property http://localhost/ttrDef-5 could not be parsed as datatype http://www.w3.org/2001/XMLSchema#dateTime 
com.hp.hpl.jena.datatypes.DatatypeFormatException: Lexical form '2015-06-10' is not a legal instance of Datatype[http://www.w3.org/2001/XMLSchema#dateTime -> class com.hp.hpl.jena.datatypes.xsd.XSDDateTime] Lexical form '2015-06-10' is not a legal instance of Datatype[http://www.w3.org/2001/XMLSchema#dateTime -> class com.hp.hpl.jena.datatypes.xsd.XSDDateTime] during parse -org.apache.xerces.impl.dv.InvalidDatatypeValueException: cvc-datatype-valid.1.2.1: '2015-06-10' is not a valid value for 'dateTime'. 
    at com.hp.hpl.jena.graph.impl.LiteralLabelImpl.getValue(LiteralLabelImpl.java:339) 
    at com.hp.hpl.jena.graph.Node_Literal.getLiteralValue(Node_Literal.java:39) 
    at com.hp.hpl.jena.rdf.model.impl.LiteralImpl.getValue(LiteralImpl.java:98) 
    at org.eclipse.lyo.oslc4j.provider.jena.JenaModelHelper.handleExtendedPropertyValue(JenaModelHelper.java:1079) 
    at org.eclipse.lyo.oslc4j.provider.jena.JenaModelHelper.fromResource(JenaModelHelper.java:584) 
    at org.eclipse.lyo.oslc4j.provider.jena.JenaModelHelper.createObjectResultList(JenaModelHelper.java:457) 
    at org.eclipse.lyo.oslc4j.provider.jena.JenaModelHelper.fromJenaModel(JenaModelHelper.java:395) 

的問題來自於警告的JenaModelHelper

catch(DatatypeFormatException e) 
        { 
/*1083*/    able(Level.WARNING)) 

/*1086*/      logger.log(Level.WARNING, (new StringBuilder()).append("Property ").append(propertyQName.getNamespaceURI()).append(propertyQName.getLocalPart()).append(" could not be parsed as datatype ").append(literal.getDatatypeURI()).toString(), e); 

所以我想暫停是消息,而不是所有其他消息,但只有這一點。所以我做

Logger.getLogger(org.eclipse.lyo.oslc4j.provider.jena.JenaModelHelper.class).setLevel(Level.OFF); 
Requirement req = response.getEntity(Requirement.class); 

Logger.getLogger(org.eclipse.lyo.oslc4j.provider.jena.JenaModelHelper.class).setLevel(Level.FATAL); 
Requirement req = response.getEntity(Requirement.class); 

但是什麼也沒發生這樣的警告仍然在控制檯中傾倒。我有循環這個代碼,並通過了超過100次,並有100個警告stacktraces.And這使問題。

@SuppressWarnings("unchecked") 
Requirement req = response.getEntity(Requirement.class); 

log4J.config.xml但我沒有看到任何的是ConsoleAppender。

如何爲這個類JenaModelHelper甚至包裝提供適宜的警告?

+1

也許你需要明確設置你的log4j的配置註銷。請檢查log4j正在從哪裏初始化。 – AndyS

+1

'2015-06-10'確實不是一個需要時間的xsd:dateTime。如果可以,請將數據類型設置爲xsd:date或修正詞法形式以包含「T00:00:00」或適當的時間。 – AndyS

+1

「@SuppressWarnings(」unchecked「)」是關於*編譯器警告*,而不是運行時警告。 –

回答

0

這將讓你的工作完全可以做到的:

final PrintStream err = new PrintStream(System.err); 
System.setErr(new PrintStream("/dev/null")); 

// ... 

System.setErr(err); // dont forget to close it