Oracle Application Server – Deployed application throwing an error – NoClassDefFoundError

octubre 24, 2012

Desarrollé una aplicación con servicios web mediante el framework Apache CXF. Localmente funcionaba bien, lo probé mediante maven y el jetty-maven-plugin, con la ayuda de SoapUI para invocar a los servicios.

Pues cuando hice el deploy en un viejo Application Server de Oracle que utiliza OC4J, me arrojaba varios errores de que no encontraba ciertas clases (NoClassDefFoundException). El problema es que cuando ejecutas una aplicación en un contenedor, esta hereda el classpath de este. Así que,si OC4J cargó una versión vieja de log4J -por ejemplo- y utilizas una función disponible sólo en versiones más recientes, tendrás estos problemas.

Normalmente deberás haber incluído las dependencias en la carpeta WEB-INF/lib (ya sea mediante maven o manualmente). Para indicarle al contenedor que deseamos utilizar las librerías que hemos incluído en esta carpeta -desde la consola Enterprise Manager- al hacer el deploy desactiva la opción “Inherit parent application’s shared library imports”. Ó puedes crear un EAR que contenga tu WAR y agrega un archivo META-INF/orion-application.xml con el siguiente contenido

</pre>
<?xml version="1.0" encoding="UTF-8"?>
<orion-application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/orion-application-10_0.xsd"
deployment-version="10.1.3.4.0" default-data-source="jdbc/OracleDS"
component-classification="external" schema-major-version="10"
schema-minor-version="0">

<imported-shared-libraries>
<remove-inherited name="*"></remove-inherited>
</imported-shared-libraries>

</orion-application>
<pre>

Fuentes:
logging – Oracle application server deployed application throwing an error – NoClassDefFoundError – Stack Overflow
.
http://docs.oracle.com/html/E13979_01/classload.htm#CIHJHADG

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: