Apache tika Apache Tika BodyContentHandler()为空
我使用的是ApacheTika1.18,当我使用一个web服务框架(sparkjava)时,下面的代码可以正常工作。但是在SpringBoot中,BodyContentHandler()代码行是空的。因此,我返回的文本是空的 不知道这是怎么回事,但如果有任何建议,我将不胜感激 我将一个Base64编码的字符串传递给这个代码,它也是URLEncoded的。因此,这两行作为前两行进行解码 在SpringBoot中的调试器中运行此代码时,变量内容的值与sparkjava中的值相同,但一旦我转到BodyContentHandler(),SpringBoot版本的处理程序变量的输入文本就不是sparkjava版本的输入文本,而是“”的处理程序 我还用Tika 1.17测试了这种行为。一样。还尝试从新的BodyContentHandler()构造函数中删除-1参数。一样 提前谢谢Apache tika Apache Tika BodyContentHandler()为空,apache-tika,Apache Tika,我使用的是ApacheTika1.18,当我使用一个web服务框架(sparkjava)时,下面的代码可以正常工作。但是在SpringBoot中,BodyContentHandler()代码行是空的。因此,我返回的文本是空的 不知道这是怎么回事,但如果有任何建议,我将不胜感激 我将一个Base64编码的字符串传递给这个代码,它也是URLEncoded的。因此,这两行作为前两行进行解码 在SpringBoot中的调试器中运行此代码时,变量内容的值与sparkjava中的值相同,但一旦我转到Body
字符串“data=”传递到SpringBoot POST方法中
String bodyData = URLDecoder.decode(data.substring(data.indexOf("data=") + 5));
byte[] decodedBodyData = java.util.Base64.getMimeDecoder().decode(bodyData);
Tika tika = new Tika();
try
{
Parser parser = new AutoDetectParser();
// line of code below returns "". Problem!
BodyContentHandler handler = new BodyContentHandler(-1); // handle larger files.
Metadata metadata = new Metadata();
InputStream inputStream = new ByteArrayInputStream(decodedBodyData);
ParseContext context = new ParseContext();
//parsing the file
parser.parse(inputStream, handler, metadata, context);
textToReturn = handler.toString();
}
catch (IOException e)
{
e.printStackTrace();
}
catch (SAXException e)
{
e.printStackTrace();
}
catch (TikaException e)
{
e.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}
您可能缺少解析器类。如果您尝试遵循ApacheTika故障排除指南,会发生什么情况?天才!非常感谢。奇怪,但是在sparkjavapom.xml中,我没有引用解析器,它在那里工作。相同的tika核心依赖项。现在,我的war文件预期为100 MB!再次感谢。:)