我也有同样的“信息”消息.我没有设法修复它(还)基本的java类型(Boolean,String …)但是对于我自己的自定义类,如果我添加@XmlRootElement注释和默认的no-param构造函数,消息就会消失.
深入研究泽西源代码我注意到类“WadlGeneratorJAXBGrammarGenerator”的代码如下:
Object parameterClassInstance = null;
try {
Constructor> defaultConstructor = type.getDeclaredConstructor();
defaultConstructor.setAccessible(true);
parameterClassInstance = defaultConstructor.newInstance();
} catch (InstantiationException ex) {
LOGGER.log(Level.FINE,null,ex);
} catch (IllegalAccessException ex) {
LOGGER.log(Level.FINE,ex);
} catch (IllegalArgumentException ex) {
LOGGER.log(Level.FINE,ex);
} catch (InvocationTargetException ex) {
LOGGER.log(Level.FINE,ex);
} catch (SecurityException ex) {
LOGGER.log(Level.FINE,ex);
} catch (NoSuchMethodException ex) {
//getting here for Boolean/String and some other primitive data type
LOGGER.log(Level.FINE,ex);
}
if (parameterClassInstance==null) {
return null;
}
所以基本上没有String,Boolean和其他几个的默认构造函数然后它抛出NoSuchMethodException因此它返回null并记录信息消息.
所以仍然不知道为什么会发生,但在我的情况下解决方案是禁用wadl生成,因为我没有使用它.
只需将以下参数添加到您的web.xml即可
com.sun.jersey.config.feature.DisableWADL
true