2012-07-31 11 views
6

Tengo un programa de proceso por lotes independiente que se ejecuta en jdk1.6.0_31. Este programa independiente tiene el cliente JAX-WS y el cliente EJB. El cliente JAX-WS funcionaba bien sin agregar ninguna jarra hasta que agregué wlfullclient.jar para el cliente EJB. Ahora con wlfullclient.jar en classpath obtengo la siguiente excepción. Por favor, hágame saber cómo resolver esto. Aprecio tu ayuda.El cliente JAX-WS Dispatch funcionaba correctamente hasta que se agregó wlfullclient.jar

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/xml/ws /spi/ProviderImpl 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
at javax.xml.ws.spi.FactoryFinder.safeLoadClass(FactoryFinder.java:150) 
at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:30) 
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:90) 
at javax.xml.ws.spi.Provider.provider(Provider.java:83) 
at javax.xml.ws.Service.<init>(Service.java:56) 
at javax.xml.ws.Service.create(Service.java:691) 

Respuesta

1

¿Has tenido algo de suerte con esto? Me encuentro con exactamente el mismo problema que se ejecuta en JetSpeed ​​2.2.2 (servidor de portal basado en Tomcat). Antes de incluir wlfullclient.jar en la carpeta lib del servidor, mi servicio web funciona bien. Después de la inclusión, explota en la creación de instancias con exactamente el seguimiento de la pila que incluye arriba.

Mi pensamiento (teórico en esta etapa) es el siguiente:

wlfullclient.jar tiene una clase que tiene el mismo nombre y el paquete en su clase ya en Metro pila de servicios web. Esta clase se está cargando antes de la clase Metro y luego dirige la carga de clases por una vía de carga de implementaciones de lógica web en lugar de implementaciones de metro. Las implementaciones de lógica web no existen (no es como si nos hubiéramos esforzado por incluirlas porque queremos usar Java estándar) y esto explica el NoClassDefFound.

Vale la pena señalar que no he encontrado esta supuesta clase con el mismo nombre y paquete en Metro y wlfullclient.jar. En este sentido, la clase es similar al bosón de Higgs en este momento. Entonces, presumiendo que existe, ¿qué hacer al respecto?

Estaría encantado de saber si ha encontrado una solución.

También debo añadir:

necesito incluir wlfullclient.jar ya que es utilizado por otros portlets que se ejecutan en el mismo servidor. No puedo eliminarlo, pero no lo estoy usando.

+0

Proporcione una respuesta si encontró una. Gracias. – MeIr

+0

De la misma manera :) Sin solución todavía. He estado trabajando en otros proyectos, pero ciertamente volveré a tratar de resolver este problema cuando regrese a ese espacio. –

2

Tuvimos el mismo problema, después de investigar y encontrar esta pregunta, seguí un presentimiento y busqué en la documentación del servidor Weblogic.

Estaba buscando clientes alternativos.

Hay básicamente tres frascos cliente:

  • wlclient.jar - IIOP para clientes
  • wlfullclient.jar - para todo en un frasco (tamaño masivo ~ 50 MB)
  • wlthint3client.jar - para un cliente t3 muy delgado

La última opción es una versión reducida del cliente que admite el protocolo propietario t3 de Weblogics. Tiene algún inconveniente en términos de funcionalidad, pero si todo lo que necesita hacer es hablar con un ejb en el servidor: está todo allí.

Después de cambiar el formulario wlfullclient.jar a wlthint3client.jar, todos NoClassDefFoundError desaparecieron.

Aquí hay un enlace al Weblogic Documentation.

+0

Sí, reemplazar wlfullclient con wlthint3client.jar solucionaría este problema – Doss

Cuestiones relacionadas