JSP: novo Socket ("www", 80); parou de trabalhar depois de anos trabalhando OK
Em um aplicativo JSP, no Tomcat, o código a seguir usado para produzir o endereço inteiro da página (deesta resposta):
String myUrl = "no network";
try {
Socket s = new Socket("www", 80);
myUrl = "http://"+s.getLocalAddress().getHostAddress()+":"+request.getLocalPort()+request.getRequestURI();
s.close();
} catch (Exception ex) {
} finally {
}
Depois dissomiUrl
teria o seguinte valor (não o endereço IP real):http://111.101.101.2:8080/mypage.jsp
Trabalha há vários anos.
Uma semana atrásmiUrl
começou a ter "nenhuma rede" como valor, indicando que uma exceção aconteceu.
Eu emitiex.printStackTrace()
e diz:java.net.UnknownHostException: www
Criando uma meia com o literal"www" costumava trabalhar, agora de repente parou de funcionar.
Pergunta, questão:
Qual é a razão técnica pela qual funcionou durante anos?Qual é a razão técnica pela qual parou de funcionar de repente?Qual seria a melhor maneira de produzir programaticamente todo o endereço de qualquer página JSP, sem propensão a erros?EDIT: É um aplicativo de compartilhamento de arquivos, executando na estação de trabalho dos usuários. Quero que os usuários possam copiar o endereço para compartilhar links com outras pessoas ehttp://localhost:8080/downloadpage.jsp
(como mostrado no campo de endereço do navegador) não é bom para compartilhar. Seria bom se você me mostrasse como obter essa mesma informação sem o hack do soquete.