Foros del Web » Programación para mayores de 30 ;) » Java »

Excepcion UnknownFormatConversionException

Estas en el tema de Excepcion UnknownFormatConversionException en el foro de Java en Foros del Web. Hola, Por más que leo no consigo dar con el problema. Se que está dentro de la conversión, pero no se de donde está cogiendo ...
  #1 (permalink)  
Antiguo 04/01/2016, 03:18
 
Fecha de Ingreso: septiembre-2007
Mensajes: 101
Antigüedad: 17 años, 2 meses
Puntos: 0
Excepcion UnknownFormatConversionException

Hola,

Por más que leo no consigo dar con el problema.
Se que está dentro de la conversión, pero no se de donde está cogiendo ese ;.



Caused by: java.util.UnknownFormatConversionException: Conversion = ';'
at java.util.Formatter.checkText(Formatter.java:2500)
at java.util.Formatter.parse(Formatter.java:2464)
at java.util.Formatter.format(Formatter.java:2411)
at java.util.Formatter.format(Formatter.java:2364)
at java.lang.String.format(String.java:2558)
at com.gmv.pirita.gab.scheduler.job.GABEmailSenderJob .sendAdminPassword(GABEmailSenderJob.java:243)
at com.gmv.pirita.gab.scheduler.job.GABEmailSenderJob .execute(GABEmailSenderJob.java:63)
at org.quartz.core.JobRunShell.run(JobRunShell.java:2 16)


En el método tengo lo siguiente en la linea 243 que entiendo que es la que da problemas:

text = String.format(text, domainName, adminUser, adminPassword);

Todos son string, por lo que entiendo que no debería dar problemas a la hora de convertirlos.

Si alguien me puede ayudar, estaría muy agradecido.

Gracias, un saludo.
  #2 (permalink)  
Antiguo 04/01/2016, 03:30
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Excepcion UnknownFormatConversionException

Buenas,

Para poder responder es necesario saber cual es el contenido de la variable 'text', que contiene el formato esperado.


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 04/01/2016, 03:34
 
Fecha de Ingreso: septiembre-2007
Mensajes: 101
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Excepcion UnknownFormatConversionException

Tengo el path que me lo va a leer de un config:

Código:
String path = config.getString("bpos.mail.alta.path.gab") + config.getString(TEMPLATE_ADMIN);
template = new BufferedReader(new InputStreamReader(new FileInputStream(path), Charset.defaultCharset()));
El text llama al método obtenerCuerpoMail:
Código:
String text = obtenerCuerpoMail(template);
Y el método obtenerCuerpoMail para mandar el correo, contiene lo siguietne:

Código:
private String obtenerCuerpoMail(BufferedReader template) throws IOException {
		StringBuffer buf = new StringBuffer();
		String line;
		while ((line = template.readLine()) != null) {
			buf.append(line);
			buf.append("\n");
		}
		return buf.toString();
	}
  #4 (permalink)  
Antiguo 04/01/2016, 07:47
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Excepcion UnknownFormatConversionException

Buenas,

Ok, pero entonces lo que hay que saber es si text contiene los 'placeholders' esperados. Es decir, si contiene tres '%s' para ser reemplazados por los tres strings.
Ten en cuenta que el String.format funciona de manera similar al sprintf de C.

Por eso te pregunto por el valor de text. Viendo tu codigo, la verdadera respuesta a la pregunta esta en el contenido del fichero que lees.

Que contiene el fichero: config.getString("bpos.mail.alta.path.gab") + config.getString(TEMPLATE_ADMIN)?

Contiene variables a reemplazar del tipo %s? Si no es asi, entonces es normal que te de esa excepcion.

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #5 (permalink)  
Antiguo 04/01/2016, 08:13
 
Fecha de Ingreso: septiembre-2007
Mensajes: 101
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Excepcion UnknownFormatConversionException

No, no contiene placeholders como los que me indicas.

bpos.mail.alta.path.gab contiene /servicios/iris/config/plantillas/ y el TEMPLATE_ADMIN: mail_adminGABClient.htm

Entonces, ¿de qué manera debería especificarse esto?
  #6 (permalink)  
Antiguo 04/01/2016, 10:38
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Excepcion UnknownFormatConversionException

Buenas,

Que es entonces lo que quieres conseguir con esta linea?

Código Java:
Ver original
  1. text = String.format(text, domainName, adminUser, adminPassword);

Tal y como lo tienes lo que estas intentando es tomar el contenido de mail_adminGABClient.htm y reemplazar los sitios donde hay un %s por el contenido de las variables: domainName, adminUser, adminPassword.

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #7 (permalink)  
Antiguo 05/01/2016, 02:14
 
Fecha de Ingreso: septiembre-2007
Mensajes: 101
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Excepcion UnknownFormatConversionException

Ya vi el problema.

En la plantilla mail_adminGABClient.htm, solo hacia referencia a un %s, entiendo que debe llevar 3 %s, que contendrán el domainName, adminUser, adminPassword para que no de problemas.

Muchas gracias, has sido de gran ayuda.

Un saludo.
  #8 (permalink)  
Antiguo 05/01/2016, 05:46
 
Fecha de Ingreso: septiembre-2007
Mensajes: 101
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Excepcion UnknownFormatConversionException

Perdoname, pero estaba miranod la plantilla erronea, la plantilla, si que contiene los 3 %s.

Entonces no entiendo que puede estar pasando....


Código:
<p><span style='font-family:"Vodafone Lt",sans-serif'>Este es un mensaje para
  confirmar que su dominio </span><span lang=EN-GB><a
  href="http://tudominio.com"><span lang=ES style='font-family:"Vodafone Lt",sans-serif;
  background:yellow'>%s</span></a></span><span style='font-family:"Vodafone Lt",sans-serif'>&nbsp;se   <<<<<<<<<<<<<<<<<<<<<
....

 <li class=MsoNormal><span style='font-family:"Vodafone Lt",sans-serif'>Entre
       en </span><span lang=EN-GB><a href="http://admin.google.com"><span
       lang=ES style='font-family:"Vodafone Lt",sans-serif'>http://admin.google.com</span></a></span><span
       style='font-family:"Vodafone Lt",sans-serif'> utilizando su cuenta de
       administrador </span><span lang=EN-GB><a href="mailto:[email protected]"><span
       lang=ES style='font-family:"Vodafone Lt",sans-serif;background:yellow'>%s</span></a></span><span   
       style='font-family:"Vodafone Lt",sans-serif'> y contraseña </span><span
       lang=EN-GB><a href="http://tudominio.com"><span lang=ES
       style='font-family:"Vodafone Lt",sans-serif;background:yellow'>%s</span></a></span></li>

Etiquetas: excepcion, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:46.