Pregunta

Estoy teniendo un problema con el despliegue de una oreja guerras paquetes, tarros, y archivos de configuración (.properties) en JBoss EAP-4.3. Aquí está mi estructura del oído:

+app.ear   
  +lib  
    *.jar libraries that the war's use  
    +classes  
      *.properties and other configuration files 
  +META-INF  
    application.xml  
    jbos-app.xml  
  app.war  
  app2.war  
  appn.war  

Tengo el siguiente en mi jboss- app.xml:

<jboss-app>
  <jmx-name>app.startup.JbossStartUpServer:service=JbossStartUpService</jmx-name>
</jboss-app>    

Mi aplicacion.xml se ve así:

<application id="app_id">
  <display-name>App>/display-name>
  <description>TheApp>/description>
<!--  
  <module  id="core">
    <java>lib/core.jar</java>
  </module>

  <module id="tag">
    <java>lib/tag.jar</java>
  </module>
-->  
  <module id="app">
    <web>
      <web-uri>app.war</web-uri>
      <context-root>/</context-root>
    </web>
  </module> 

  <module id="app2">
    <web>
      <web-uri>app2.war</web-uri>
      <context-root>/app2</context-root>
    </web>
  </module> 

  <module id="appn">
    <web>
      <web-uri>appn.war</web-uri>
      <context-root>/appn</context-root>
    </web>
  </module>

  <security-role id="secRole">
    <description>users</description>
    <role-name id="appRoleName">users</role-name>
  </security-role>

  <library-directory>lib</library-directory>

</application>

Básicamente, después de la implementación de la oreja, me encuentro con un problema por el que una de mis guerras no puede encontrar una clase en el archivo core.jar (java.lang.NoClassDefFoundError). Creo que esto es debido al hecho de que la guerra no es encontrar esta biblioteca, a pesar de que está en la carpeta lib / ruta de clase. Si trato de quitar los comentarios de los dos primeros módulos para agregar las bibliotecas primeras partes (core.jar y tag.jar), de repente, los archivos de propiedades ya no pueden ser encontrados (que se encuentran, por ahora, en lib/classes, por lo que, espero que de todos modos , que son recogidos por el cargador de clases. Idealmente me gustaría poner las clases en su propio directorio y añadirlo a la ruta de clase por separado, pero por ahora sólo estoy tratando de hacer este trabajo).

He intentado algunas otras cosas, como agregar manualmente core.jar de archivo manifest.mf de la guerra, el cambio de UseJBossWebLoader a true en el archivo jboss-service.xml bajo la jboss-web.deployer, y varias combinaciones de las anteriores, o ningún éxito. Yo tampoco pierdo el directorio classes de la ruta de clases (carpeta lib) y ninguno de mis archivos de propiedades de ser recogido, o la guerra no puedo acceder a la clase apropiada de la jarra. Creo que debe haber alguna configuración que está mal, y aunque he intentado leer sobre la forma en JBoss hace despliegues oreja y la carga de clase, me parece que no puede adaptarlo a mi configuración actual.

Cualquier sugerencia sería muy apreciada.

Aquí hay algunos sitios que he estado buscando en:
Raible diseños JBoss cargador de clases de Lógica

Estos son sólo algunos de los sitios que he mirado. Los problemas pueden derivan de la configuración del proyecto, así, ya que este es un gran proyecto que es establecida (hasta cierto punto) que se está migrando de un despliegue de WebLogic para Jboss. Así que si hay algo que debería funcionar, pero no lo hace, podría ser un problema con algunos de la configuración de código / proyecto. Por desgracia, yo no estoy en el punto en el que todavía puedo decir si es un problema relacionado con JBoss, o un problema con el proyecto.

¿Fue útil?

Solución

La etiqueta <library-directory> en application.xml es una característica JavaEE5, y no creo que JBoss 4.3 es totalmente compatible con JavaEE5 (que puede hacer EJB3, sí, pero es sólo un apoyo parcial).

Así que hay que volver a usar los archivos JAR declaradas explícitamente:

<module>
    <java>lib/core.jar</java>
</module>

En cuanto a los archivos de propiedades, es necesario agregar el directorio que están en un módulo de Java, por lo que por su ejemplo:

<module>
    <java>lib/classes</java>
</module>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top