2011-02-07 13 views
11

Tengo una aplicación web heredada que usa etiquetas jstl y Struts 1. Cuando precompilio los archivos JSP con Java 5/6, las etiquetas jstl y Struts 1 arrojan advertencias sobre "operaciones no verificadas o inseguras". Por ejemplo, si uso la siguiente etiqueta:Suprimir advertencias desactivadas de Java en archivos JSP

<%@ page import="/anotherpage.inc" %> 

La siguiente advertencia es arrojado:

[javac] Note: Some input files use unchecked or unsafe operations. 
[javac] Note: Recompile with -Xlint:unchecked for details. 

Si recompilar con -Xlint: sin control, recibo detalles sobre el funcionamiento interno de la biblioteca de etiquetas JSP ofensiva. Me gustaría suprimir todas las advertencias de operación sin marcar. Pensé que usar -Xlint: -unchecked suprimiría las advertencias, pero no fue así.

¿Cómo elimino estas advertencias al compilar mis páginas JSP? No sería práctico volver a codificar las bibliotecas de etiquetas JSP o actualizar miles de páginas JSP. Estoy buscando una bandera del compilador para deshabilitar globalmente la advertencia para que pueda ver todas las advertencias a excepción de las advertencias no verificadas. ¡Gracias!

+1

Posible duplicado [¿Hay un equivalente a Java @SuppressWarnings en JSP?] (Http: // stackoverflow.com/questions/487715/is-there-an-equivalent-to-java-suppresswarnings-in-jsp) – justkt

+1

En esa pregunta, preguntaban sobre algo que podría agregarse a un JSP individual para suprimir la advertencia. Estoy buscando algo global. – Bob

+0

Las advertencias no se lanzan y solo son advertencias. Si su código funciona correctamente, puede ignorarlos de manera segura. –

Respuesta

0

Tienes razón en que

-Xlint:unchecked

hace lo contrario de lo que quiere, pero también se puede utilizar

-Xlint:-unchecked

Nota el extra "-" en ese país.

Esto deshabilitará todas las advertencias sobre operaciones no verificadas, no solo las generadas por la biblioteca de etiquetas, pero se mostrarán otras advertencias.

+0

En realidad, ya lo intenté. Con Xlint: -desactivado, se obtiene el mensaje "Recompilar con Xlint: desactivado" una vez por archivo ofensivo. Con Xlint: desactivado, obtiene un mensaje detallado con el número de línea exacto de la biblioteca de etiquetas que infringe la regla no verificada. Me gustaría desactivar completamente la advertencia y no solo acortar el tamaño de la advertencia. – Bob

+0

-1 -Xlint: -unchecked es el valor predeterminado. Esa bandera sigue mostrando la nota. – fglez

0

la mejor manera de desactivar esa advertencia es dejar de usar código Java en sus JSP. Comience a acostumbrarse a usar JSTL o JSF en su lugar (con libretas de etiquetas personalizadas según sea necesario).

Pero con las aplicaciones heredadas no podrás hacer eso con la mayor probabilidad, y tendrás que vivir con las advertencias. Por supuesto, puede agregar el distintivo -nowarn al compilador, pero esto desactivará TODAS las advertencias, no solo esta, que puede ser más de lo que desee.

1

Esos mensajes son una nota (obligatoria para JDK> = 1.5), no una advertencia.

compiler.note.unchecked.plural=\ 
    Some input files use unchecked or unsafe operations. 

El comportamiento compilador por defecto es el mismo que con -Xlint:-unchecked.

Con -Xlint:unchecked activa la advertencia, informando cada instancia.

compiler.warn.unchecked.assign=\ 
    [unchecked] unchecked assignment: {0} to {1} 
... 

notas obligatorios no se pueden desactivar de forma individual, todos ellos son lesionados con -Xlint:none. Desafortunadamente, el resto de las advertencias también están deshabilitadas.

Puede consultar otras respuestas para ver las alternativas, pero filtrar los mensajes de salida del compilador parece ser la solución más fácil.

Cuestiones relacionadas