2011-06-29 15 views
7

Este es mi código Java en un archivo JSP. ObtengoBase64Encoder no se puede resolver

Base64Encoder no se puede resolver.

¿Por qué es así? Tengo que agregar algo relacionado con Base64Encoder. Cualquier sugerencia será apreciada.

<%@ page language="java" import="java.io.OutputStream,java.net.HttpURLConnection,java.net.URL,java.util.Collection,org.apache.commons.httpclient.Credentials,org.apache.commons.httpclient.auth.AuthenticationException,org.apache.commons.httpclient.auth.MalformedChallengeException,org.apache.commons.httpclient.params.DefaultHttpParams,org.apache.commons.httpclient.params.HttpParams,org.apache.commons.httpclient.auth.AuthScheme,org.apache.commons.httpclient.auth.AuthPolicy,org.apache.commons.httpclient.HttpClient,org.apache.commons.httpclient.UsernamePasswordCredentials,org.apache.commons.httpclient.auth.AuthScope,org.apache.commons.httpclient.methods.GetMethod,org.w3c.dom.*,javax.xml.parsers.DocumentBuilder,javax.xml.parsers.DocumentBuilderFactory,java.net.*,java.io.*" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 

<% 
String a_Url = request.getParameter("url") ; 

URL url = new URL (a_Url); 
String encoding = Base64Encoder.encode ("test:test"); 

HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setRequestMethod("GET"); 
connection.setDoOutput(true); 
connection.setRequestProperty ("Authorization", "Basic " + encoding); 
InputStream content = (InputStream)connection.getInputStream(); 
BufferedReader in = 
    new BufferedReader (new InputStreamReader (content)); 
String line; 
while ((line = in.readLine()) != null) { 
    System.out.println(line); 
} 

%> 
+0

@BalusC, editó la solución también en mi código. o solo las preguntas .. Como todavía estoy recibiendo ese error ... – ferhan

+0

No edité la solución en tu código. Esto no tiene sentido. Acabo de corregir el formato, el uso de inglés y las etiquetas irrelevantes eliminadas. Haga clic en el enlace de tiempo azul después de "editado" debajo de la pregunta para ver la diferencia. – BalusC

+0

@BalusC, sigo recibiendo el error después de importar com.oreilly.servlet. Y estoy trabajando en eclipse. Entonces, ¿qué debo importar ahora? – ferhan

Respuesta

15

Parece que está utilizando una clase que no existe en un contenedor que ha incluido en la aplicación web. ¿Puedes probar lo siguiente? Hacer los ajustes necesarios, sólo estoy buscando en la documentación de los Comunes y escribiendo esto -

  1. Ir a http://commons.apache.org/codec/index.html y leer a través de la información que hay
  2. Ahora voy a http://commons.apache.org/codec/download_codec.cgi y descargue el archivo zip
  3. extraer el archivo jar y copiarlo en el directorio lib de la aplicación web
  4. Reemplazar la línea [codificación String = Base64Encoder.encode ("prueba: prueba");]

con

String encoding = new String(
org.apache.commons.codec.binary.Base64.encodeBase64 
    (org.apache.commons.codec.binary.StringUtils.getBytesUtf8("test:test")) 
); 
+0

gracias mucho sai por su ayuda .. Realmente apreciado .. – ferhan

1

Es posible que tenga que hacer una importación o especificar el nombre de clase completo para Base64Encoder

+0

así que lo que tengo que importar, que no puedo entender ... – ferhan

+0

Parece que está utilizando la clase Base64Encoder, ¿sabe cuál es el nombre del paquete de la clase? Pruebe esto: vaya al directorio "lib" de su proyecto y busque en los archivos jar para ver si ve una clase llamada Base64Encoder. Si está allí, encuentre su clase y hágalo referencia. Si no está allí, es probable que le falte un archivo jar en el directorio lib. Para buscar a través de los archivos jar en el directorio lib, revise cada uno y haga un 'jar tvf' en él para ver las clases que contiene. – Sai

1

no veo una inclusión del espacio de nombres aquí para Base64Encoder. Intente agregar 'com.oreilly.servlet' a su importación.

+0

gracias por contestar de nuevo. Agregué esa importación, pero en esa importación recibo 'La importación com.oreilly no se puede resolver' y estoy trabajando en eclipse .. – ferhan

+0

Raihan, había supuesto que ya habías conseguido ese frasco. Intente descargarlo desde http://www.servlets.com/cos/ –

11

sospecho que no está utilizando un JRE independiente en lugar del que está incluido en el JDK.

  1. Haga clic derecho en el proyecto y haga clic en "Build Path" -> "Configuración Vía de construcción"
  2. En "Bibliotecas", haga clic en el JRE existente y haga clic en "Eliminar"
  3. Haga clic en "Add Library" -> "Biblioteca del sistema JRE" -> "Finalizar"

La clase debería resolverse ahora.

Cuestiones relacionadas