Java의 URL 클래스가 특정 프로토콜을 인식하지 못하는 이유는 무엇입니까?
-
18-09-2019 - |
문제
url u = new URL ( "telnet : //route-server.exodus.net");
이 라인은 생성됩니다.
java.net.malformedurlexception : 알 수없는 프로토콜 : Telnet
그리고 "뉴스 : //"로 시작하는 다른 URL과 비슷한 문제가 발생합니다.
이것들은 ODP에서 추출한 URL이므로 그러한 예외가 발생하는 이유를 이해하지 못합니다 ..
해결책
문제
Java는 던졌습니다 MalformedURLException
그것을 찾을 수 없기 때문에 URLStreamHandler
그 프로토콜을 위해. 을 체크하다 Javadocs 세부 사항에 대한 생성자의.
요약:
이후 URL
클래스는 다음과 같습니다 openConnection
방법, URL 클래스는 Java가 올바른 프로토콜의 연결을 열는 방법을 알고 있는지 확인합니다. a URLStreamHandler
이 프로토콜의 경우 Java는 a URL
전화를 시도 할 때 실패에서 벗어나기 위해 openConnection
.
해결책
당신은 아마도 사용해야합니다 URI
클래스 Java에서 해당 프로토콜을 연결할 계획이없는 경우.
다른 팁
응용 프로그램에 프로토콜 "Telnet"에 대한 등록 된 핸들러가없는 것 같습니다. URL 클래스를 사용하여 URL에 대한 입력 스트림을 열 수 있으므로,이 작업을 사용하여 객체를 만들 수있는 경우 프로토콜 이이 작업을 수행하려면 등록 된 핸들러가 있어야합니다.
핸들러를 추가하는 방법에 대한 자세한 내용은 다음을 참조하십시오. http://docs.oracle.com/javase/7/docs/api/java/net/urlstreamhandlerfactory.html
Java는 표준이 없기 때문에 그 오류가 발생하고 있습니다. 프로토콜 핸들러 Telnet의 경우.
간단한 대답은 그것 만 있다는 것입니다 하다 특정 프로토콜을 인식하고 나머지 프로토콜의 무한대는 인식되지 않습니다.