Cómo solucionar el error java.lang.verify
En general, hay dos situaciones comunes:
1. Cuando el MANIFEST.MF de un archivo jar se ha marcado con Sellado: verdadero, todos los paquetes java en este jar serán La clase debe. proviene de este paquete jar. Esta es una medida de seguridad de la JVM. Puede evitar la manipulación de firmas digitales. Microsoft firmó su controlador SQLServer. Por ejemplo, el rt.jar de JRE está sellado, por lo que si usted mismo crea una clase java.lang.MyClass para ejecutarla, la JVM la rechazará. Normalmente, si utiliza AOP dinámico basado en proxy, como la carga diferida de Hibernate o el AOP de Spring, puede deberse a que una subclase generada temporalmente se genera en la memoria en lugar de a partir de un paquete jar. está sellado, no funcionará. Por ejemplo, cuando el controlador JDBC de Microsoft SQLServer está sellado, se producirá un error si utiliza la carga diferida de Hibernate, porque la clase de proxy generada por Hibernate hereda una clase en un determinado paquete de controlador JDBC, pero. este paquete de controlador está sellado y generado. Habrá un error si el nombre del paquete de la clase está en el archivo jar del nombre del controlador.
2. Puede ser un error de versión de la clase. Este error significa que estás diciendo que la versión de otras bibliotecas de clases a las que hace referencia una de tus clases actuales es diferente de la versión utilizada por esta clase al compilar. Por ejemplo: tu clase A usa una clase en c_1.0.jar. después de la compilación, llévelo al servidor para usarlo, pero solo existe la clase c_1.1.jar en el servidor, y su versión es ligeramente diferente de cierta clase utilizada en c_1.0.jar.
Entonces, en el desarrollo J2EE, asegúrese de programar para la API o la interfaz al compilar, no para la clase de implementación; de lo contrario, las diferentes versiones tendrán un gran impacto en usted y deberá apuntar a todos los servidores. que se pueden utilizar sólo mediante pruebas exhaustivas se pueden descubrir problemas.
Si está utilizando una herramienta de desarrollo como Eclipse, cuando desee utilizar jstl.jar, jsp.jar, servlet.jar, j2ee.jar y otras API proporcionadas por el servidor, no debemos poner el servidor Copie el jar en WEB-INF/lib. En su lugar, agregue Biblioteca > Tiempo de ejecución del servidor o Biblioteca de usuario en la ruta de compilación de Java de las propiedades del proyecto Eclipse para evitar copiar el jar. Una vez copiada, es posible que otros no sepan la diferencia entre su biblioteca de clases y la biblioteca de clases del servidor después de cambiar la configuración del servidor.