我在网上浏览了一下,但似乎可以正常工作。我在尝试读取JSON的Web服务中,但是在创建XStream对象时却不断收到错误消息。这是我的代码和错误
public static InputDTO inputFromJson(HttpServletRequest request) throws IOException {
logger.debug("in inputfromjson");
XStream xstreamJson = new XStream(new JettisonMappedXmlDriver()); //this is where the code starts failing
logger.debug("after xstreamjson create");
xstreamJson.alias("tz", String.class);
InputDTO inputDTO = null;
try (InputStream is = request.getInputStream())
{
Object dto = xstreamJson.fromXML(is);
if (dto instanceof InputDTO) {
inputDTO = (InputDTO)dto;
}
}
logger.debug(inputDTO);
return inputDTO;
}
我得到的错误是
java.lang.ClassNotFoundException: org.codehaus.jettison.mapped.Configuration
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver.<init>(JettisonMappedXmlDriver.java:48)
at com.homedepot.week3.XMLReader.inputFromJson(XMLReader.java:81)
我已经读过我需要导入org.codehaus.jettison.json。*;但这似乎无法解决任何问题。有人可以帮忙吗?我敢肯定这很简单。
谢谢!
最佳答案
ClassNotFoundException
:您要查找的类在您的classPath
中不可用
How To resolve Class Not Found Exception
为您的堆栈跟踪它说org.codehaus.jettison.mapped.Configuration
找不到。
您缺少lib jettison
,如果您正在使用maven,则可以添加
<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
<version>1.3.5</version>
</dependency>