2011-01-31 3 views
0

J'essaie d'obtenir une URL absolue dans la classe java, mais je reçois une erreur même après avoir été convertie en Object.URL absolue en java

Toutes les suggestions

String file = ((Object) request).getRequestURI(); 
    if (((Object) request).getQueryString() != null) { 
     file += '?' + ((Object) request).getQueryString(); 
    } 
    URL reconstructedURL = new URL(request.getScheme(), 
            request.getServerName(), 
            request.getServerPort(), 
            file); 
    System.out.println(URL.toString()); 
+0

Quel est le type réel de 'request'? Par défaut, la requête est déjà un objet (pas besoin de lancer), et elle ne contient certainement pas de méthode 'getRequestURI'. Je présume que vous obtenez une erreur de méthode non trouvée. La requête est-elle supposée être une requête HttpServletRequest? http://download.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html – hisdrewness

+0

@Daniel: Oui, il devrait s'agir de HttpServletRequest. –

Répondre

2

Un casting à l'objet est jamais nessecary, parce que tout est un objet. Je suggère de poster la pile de votre erreur.

((Object) request).getRequestURI() ne fonctionne pas, car Object n'a pas de fonction getRequestURI(). Laisse le jet loin.

4

Ajout à ce que @Daniel dit URL classe n'a pas de méthode statique comme .toString(). Vous devez utiliser reconstructedURL à la place

Je ne testons pas, mais s'il vous plaît essayer

String file = (request).getRequestURI(); 
if ((request).getQueryString() != null) { 
    file += '?' + (request).getQueryString(); 
} 

URL reconstructedURL = new URL(request.getScheme(), 
           request.getServerName(), 
           request.getServerPort(), 
           file); 
System.out.println(reconstructedURL.toString());