我也有同样的“信息”信息。对于基本的 java 类型(布尔、字符串...),我还没有设法修复它,但是对于我自己的自定义类,如果我添加 @XmlRootElement 注释和默认的无参数构造函数,消息就会消失。
深入研究球衣源代码,我注意到“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, null, ex);
} catch (IllegalArgumentException ex) {
LOGGER.log(Level.FINE, null, ex);
} catch (InvocationTargetException ex) {
LOGGER.log(Level.FINE, null, ex);
} catch (SecurityException ex) {
LOGGER.log(Level.FINE, null, ex);
} catch (NoSuchMethodException ex) {
//getting here for Boolean/String and some other primitive data type
LOGGER.log(Level.FINE, null, ex);
}
if (parameterClassInstance==null) {
return null;
}
因此,基本上没有 String、Boolean 和其他少数类型的默认构造函数,然后它会抛出 NoSuchMethodException,因此它返回 null 并记录信息消息。
所以仍然不知道它为什么会发生,但在我的情况下,解决方案是禁用 wadl 生成,因为我没有使用它。只需将以下参数添加到您的 web.xml
<init-param>
<param-name>com.sun.jersey.config.feature.DisableWADL</param-name>
<param-value>true</param-value>
</init-param>