Path Class(WatchService)如何与FileBody一起使用API​​调用

时间:2016-12-02 10:40:36

标签: java

我的java程序将监视一个目录,如果该目录有新的文件,它将获取该文件并通过API调用将其发送到我的服务器。该文件必须以单件形式发送,因此我无法使用任何阅读器来阅读文件内容

这是我的示例程序的一部分

for(WatchEvent<?> event : wk.pollEvents())
                {
                    WatchEvent.Kind<?> type = event.kind();
                    Path fileName = (Path)event.context();
                    System.out.println(fileName+  "is a new file");
                    HttpClient client = new DefaultHttpClient();
                    HttpPost post = new HttpPost("http://192.168.0.27:8008/file");
                    String ConvertFile = String.valueOf(fileName); 
                    FileBody bin = new FileBody(new File(ConvertFile));
                    HttpEntity reqEntity = MultipartEntityBuilder.create() 
                               .addPart("display_name", bin)
                               .build();
                    post.addHeader("filename", ConvertFile);
                    post.setEntity(reqEntity);
                    HttpResponse response = client.execute(post);
                    BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));


这是我的代码部分,我怀疑带给我的错误信息如下所示

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/util/Args
    at org.apache.http.entity.mime.content.AbstractContentBody.<init>(AbstractContentBody.java:48)
    at org.apache.http.entity.mime.content.FileBody.<init>(FileBody.java:96)
    at org.apache.http.entity.mime.content.FileBody.<init>(FileBody.java:89)
    at FileDetect.main(FileDetect.java:52)
Caused by: java.lang.ClassNotFoundException: org.apache.http.util.Args
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 4 more 



我怀疑 FileBody 不能使用我的 Path 类,其中包含我的新文件信息。我测试过我的目录中是否有新文件出现,System.out.println(fileName+ "is a new file");能够正确地执行它的工作,告诉我新的文件到达了,我是否知道(Path)event.context();语法会得到内容仅限文件或文件名,源代码中文件名的数据类型是什么? FileBody 将收集文件并通过API调用将其发送到我的服务器

1 个答案:

答案 0 :(得分:0)

由于类加载器无法找到类,因此需要使用httpcore.jar库,因此发生'java.lang.NoClassDefFoundError'错误。 你可以从以下网址下载jar文件:

http://www.java2s.com/Code/Jar/h/Downloadhttpcore43beta1jar.htm

检查一下: org/apache/http/util/Args (java.lang.NoClassDefFoundError). Message payload is of type: String