URLConnection FileNotFoundException for non-standard HTTP port sources

后端 未结 8 935
野性不改
野性不改 2020-11-29 04:30

I was trying to use the Apache Ant Get task to get a list of WSDLs generated by another team in our company. They have them hosted on a weblogic 9.x server on http://....co

相关标签:
8条回答
  • 2020-11-29 05:05

    I've tried that locally - using the code provided - and I don't get a FileNotFoundException except when the server returns a status 404 response.

    Are you sure that you're connecting to the webserver you intend to be connecting to? Is there any chance you're connecting to a different webserver? (I note that the port number in the code doesn't match the port number in the link)

    0 讨论(0)
  • 2020-11-29 05:17

    I know this is an old thread but just noticed something on this one so thought I will just put it out there.

    Like Jessica mentioned, this exception is thrown when using non-standard port.

    It only seems to happen when using DNS though. If I use IP number I can specify the port number and everything works fine.

    0 讨论(0)
  • 2020-11-29 05:19

    This is an old thread, but I had a similar problem and found a solution that is not listed here.

    I was receiving the page fine in the browser, but got a 404 when I tried to access it via the HttpURLConnection. The URL I was trying to access contained a port number. When I tried it without the port number I successfully got a dummy page through the HttpURLConnection. So it seemed the non-standard port was the problem.

    I started thinking the access was restricted, and in a sense it was. My solution was that I needed to tell the server the User-Agent and I also specify the file types I expect. I am trying to read a .json file, so I thought the file type might be a necessary specification as well.

    I added these lines and it finally worked:

    httpConnection.setRequestProperty("User-Agent","Mozilla/5.0 ( compatible ) ");
    httpConnection.setRequestProperty("Accept","*/*");
    
    0 讨论(0)
  • 2020-11-29 05:23

    check the response code being returned by the server

    0 讨论(0)
  • 2020-11-29 05:25

    I know this is an old thread but I found a solution not listed anywhere here.

    I was trying to pull data in json format from a J2EE servlet on port 8080 but was receiving the file not found error. I was able to pull this same json data from a php server running on port 80.

    It turns out that in the servlet, I needed to change doGet to doPost.

    Hope this helps somebody.

    0 讨论(0)
  • 2020-11-29 05:29

    I have run into a similar issue but the reason seems to be different, here is the exception trace:

    java.io.FileNotFoundException: http://myhost1:8081/test/api?wait=1
        at sun.reflect.GeneratedConstructorAccessor2.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1491)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1485)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1139)
        at com.doitnext.loadmonger.HttpExecution.getBody(HttpExecution.java:85)
        at com.doitnext.loadmonger.HttpExecution.execute(HttpExecution.java:214)
        at com.doitnext.loadmonger.ClientWorker.run(ClientWorker.java:126)
        at java.lang.Thread.run(Thread.java:680)
    Caused by: java.io.FileNotFoundException: http://myhost1:8081/test/api?wait=1
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1434)
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
        at com.doitnext.loadmonger.HttpExecution.execute(HttpExecution.java:166)
        ... 2 more
    

    So it would seem that just getting the response code will cause the URL connection to callGetInputStream.

    0 讨论(0)
提交回复
热议问题