0

在这里,我使用 HTTP-CLIENT 来调用 servlet,但如果我只是点击“http://:8080/RemediPRMS/WritePingData”这个链接,它会给我响应代码 200,但如果我从小程序运行它,它会给我 404。

    Deployment descriptor mapping is :
     <servlet>
        <servlet-name>WritePingData</servlet-name>
        <servlet-class>com.clientToServer.FileUploader.WritePingData</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>WritePingData</servlet-name>
        <url-pattern>/WritePingData</url-pattern>
      </servlet-mapping>

    try{
                System.out.println("folder.listFiles().length"+folder.listFiles().length);
                if(folder.listFiles().length > 0){
                    System.out.println("inside if file found[][][[[][][][][][][");
                    String remediEndpoint = "http://<endpoint>:8080/RemediPRMS/WritePingData";
                    FileInputStream fis = null;
                    System.out.println("above for loop");
                    File arr[] =folder.listFiles();//file array
                    System.out.println("array pass");

                        PostMethod post = null;
                        System.out.println("just above for loop");
                        for(int i=0;i<arr.length;i++){
                            try{
                                System.out.println("inside for loop");
                                File targetFile = new File(path+"\\"+arr[i].getName());
                                fis = new FileInputStream(targetFile);
                                post = new PostMethod(remediEndpoint);
                                post.setRequestEntity(new InputStreamRequestEntity(fis, targetFile.length()));
                                post.setRequestHeader("Content-type","text/plain; UTF-8"); 
                                HttpClient httpclient = new HttpClient();
                                httpclient.setConnectionTimeout(10000);
                                int status = httpclient.executeMethod(post);
                                fis.close();
                                //boolean deletestatus= targetFile.delete();
                                System.out.println("status from server : "+status);
                            }catch(Exception e){
                                LOGGER.info("Exception in file upload (http client): "+e);
                            }
                        }
                        post.releaseConnection();
                    }else{
                        LOGGER.info("THERE IS NO MORE FILE TO UPLOAD ");
                    }
                }catch(Exception e){
                    LOGGER.info("No directory inside LogData: "+e);
                }
4

1 回答 1

1

您需要在 url 中输入主机名

例如

http://myserver:8080/RemediPRMS/WritePingData

或者假设你是,仍然是沙盒的小程序不能

他们无法连接到任何第三方服务器(除了它源自的服务器之外的任何服务器)或从任何第三方服务器检索资源。

请参阅http://docs.oracle.com/javase/tutorial/deployment/applet/security.html

于 2013-10-04T07:30:23.317 回答