2012-07-13 34 views
6

Estoy tratando de migrar un servicio web basado en Jax-WS a JBoss como 7 pero la aplicación (desplegada como una guerra) no inicia el escucha en el arranque.Error listenerStart - JaxWS - JBoss as 7

ERROR [org.apache.catalina.core.StandardContext] (MSC service thread 1-14) Error listenerStart 
ERROR [org.apache.catalina.core.StandardContext] (MSC service thread 1-14) Context [/abc] startup failed due to previous errors 
ERROR [org.jboss.msc.service.fail] (MSC service thread 1-14) MSC000001: Failed to start service jboss.web.deployment.default-host (...) 

Las referencias de mensajes de error a fallaron debido a errores anteriores sin embargo no hay errores se imprimen en el registro. La aplicación en cuestión paquetes JAX-WS-rt así:

<dependency> 
     <groupId>sun-jaxws</groupId> 
     <artifactId>jaxws-rt</artifactId> 
     <version>2.1.7</version> 
    </dependency> 

Si cambio el alcance de la JAX-WS-rt para proporcionar esto provoca una agradable ClassNotFound como se esperaba.

WARN [org.jboss.as.ee] (MSC service thread 1-13) JBAS011006: Not installing optional component com.sun.xml.ws.transport.http.servlet.WSServletContextListener due to exception: java.lang.ClassNotFoundException: com.sun.xml.ws.transport.http.servlet.WSServletContextListener (…) 

El servlet se define así en web.xml.

<listener> 
    <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> 
</listener> 
<servlet> 
    <description>JAX-WS endpoint for data service</description> 
    <display-name>abc</display-name> 
    <servlet-name>abc</servlet-name> 
    <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>abc</servlet-name> 
    <url-pattern>/services/abc</url-pattern> 
</servlet-mapping> 

No puedo entender cuál es incorrecto. ¿Cómo soluciono esto y obtengo la aplicación implementada?

Pensamientos:

  1. me estoy perdiendo una dependencia?
  2. ¿Puedo reconfigurar la guerra para usar JaxWS interno de Jboss sin una refactorización importante?
  3. Si no puedo usar una versión interna de JaxWS de jboss, ¿puedo forzar a Jboss a usar una versión de Jaxws que empaquete en la guerra? (Si es así, ¿qué dependencias necesito para jaxws?)

Respuesta

7

con JBoss AS7 (Java EE6) que realmente no debería tener que poner el WSServlet en el web.xml como el servlet-class. Pero en lugar usted tiene allí el nombre de clase de la clase comentada con @WebService

Todo lo que quiere hacer es asegurarse de que en que la configuración de JBoss (por ejemplo standalone.xml) que tiene la extensión de servicios web habilitada:

<extensions> 
    [...] 
    <extension module="org.jboss.as.webservices"/> 
</extensions> 
Cuestiones relacionadas