* CONTEXTO DEL PROBLEMA:
Debo consumir métodos de un Web Service expuesto por una institucion externa a la mia,el web service fue generado con JAXWS de SUN.
Implemente otro web service para consumo interno de mi institucion el cual encapsula los metodos expuestos por el proveedor externo, utilice JAXWS de Sun (no el de IBM), inicialmente tuve algunos problemas con el reconocimiento de algunos jar.
Intente configurando las bibliotecas compartidas en el servidor para utilizar los jar con el cargador de clases PARENT_LAST y tampoco funcionó.
Intente relizarlo con las librerias JAXWS-IBM pero tampoco tuve éxito, por eso lo realize con JAXWS de SUN (librerias utilizadas por el proveedor de servicio externo)
Luego encontre una solución utilizando la carpeta "endorsed" (esta carpeta ya existia pero estaba vacia) que se encuentra en el árbol de directorios del sdk incluido en el WAS 7.0 y copiando otros jar en la carpeta "classes", las cuales se ubican físicamente en (en mi PC):
endorsed: E:\IBM\SDP\jdk\jre\lib\endorsed
jar copiados: - saaj-api.jar
- saaj-impl.jar
- serializer-2.7.1.jar
- stax-1.2.0.jar
- stax-ex.jar
- streambuffer.jar
- xalan-2.7.1.jar
- xercesImpl-2.9.0.jar
- xml-apis-1.3.04.jar
classes: E:\IBM\SDP\runtimes\base_v7\profiles\AppSrv01\clas ses
jar copiados: - jaxb-api.jar
- jaxb-impl.jar
- jaxb-xjc.jar
- jaxp-ri-1.4.2.jar
- jaxws-api.jar
- jaxws-rt.jar
- jaxws-tools.jar
- webservices-api.jar
- webservices-rt.jar
Para desplegar el aplicativo uso el WAS 7.0 que viene incluido en el RSA 7.5(Rational Software Architect) el cual esta instalado sobre Windows Server 2003 EE - 32bits. Hasta aquí todo va bien, realizo mis pruebas de consulta a los métodos expuestos y obtengo la respuesta esperada
* EL PROBLEMA:
El problema surge cuando quiero desplegar el EAR en WAS 7.0 que se encuentra instalado en linux (RedHat) kernel 2.6.18 - 64 bits.
En este caso tuve que crear la carpeta endorsed pues no se encontraba en el directorio, y coloco los jar anteriormente mencionados en cada directorio, las cuales se ubican físicamente en:
endorsed: /opt/IBM/WebSphere/AppServer/java/jre/lib/endorsed
classes: /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/classes
Luego realizo mis pruebas y me arroja la siguiente traza de error:
[20-01-2012 09:11:54] ERROR [class:pe.gob.pj.WsBiometriaImpl]error
javax.xml.ws.WebServiceException: java.lang.NoSuchMethodError: com/sun/xml/stream/buffer/stax/StreamWriterBufferCreator.setCheckAttributeValue(Z )V
at com.sun.xml.wss.jaxws.impl.SecurityClientTube.proc essRequest(SecurityClientTube.java:170)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:5 98)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:55 7)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:542 )
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:4 39)
at com.sun.xml.ws.client.Stub.process(Stub.java:222)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStu b.java:135)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke (SyncMethodHandler.java:109)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke (SyncMethodHandler.java:89)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.j ava:118)
at $Proxy158.login(Unknown Source)
at reniec.ws.AccessWS.loginWSBIO(AccessWS.java:36)
at pe.gob.pj.WsBiometriaImpl.loginWSBIO(WsBiometriaIm pl.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:45)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at com.sun.xml.ws.api.server.InstanceResolver$1.invok e(InstanceResolver.java:246)
at com.sun.xml.ws.server.InvokerTube$2.invoke(Invoker Tube.java:146)
at com.sun.xml.ws.server.sei.EndpointMethodHandler.in voke(EndpointMethodHandler.java:257)
at com.sun.xml.ws.server.sei.SEIInvokerTube.processRe quest(SEIInvokerTube.java:93)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:5 98)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:55 7)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:542 )
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:4 39)
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSE ndpointImpl.java:243)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpTool kit.handle(HttpAdapter.java:444)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(H ttpAdapter.java:244)
at com.sun.xml.ws.transport.http.servlet.ServletAdapt er.handle(ServletAdapter.java:135)
at com.sun.xml.ws.transport.http.servlet.WSServletDel egate.doGet(WSServletDelegate.java:129)
at com.sun.xml.ws.transport.http.servlet.WSServletDel egate.doPost(WSServletDelegate.java:160)
at com.sun.xml.ws.transport.http.servlet.WSServlet.do Post(WSServlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:738)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:831)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.ser vice(ServletWrapper.java:1657)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.han dleRequest(ServletWrapper.java:939)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.han dleRequest(ServletWrapper.java:502)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl .handleRequest(ServletWrapperImpl.java:179)
at com.ibm.ws.webcontainer.servlet.CacheServletWrappe r.handleRequest(CacheServletWrapper.java:91)
at com.ibm.ws.webcontainer.WebContainer.handleRequest (WebContainer.java:864)
at com.ibm.ws.webcontainer.WSWebContainer.handleReque st(WSWebContainer.java:1583)
at com.ibm.ws.webcontainer.channel.WCChannelLink.read y(WCChannelLink.java:186)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLi nk.handleDiscrimination(HttpInboundLink.java:445)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLi nk.handleNewRequest(HttpInboundLink.java:504)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLi nk.processRequest(HttpInboundLink.java:301)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCa llback.complete(HttpICLReadCallback.java:83)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListe ner.futureCompleted(AioReadCompletionListener.java :165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallbac k(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletion Actions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture .java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHand ler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingL oop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler .java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.j ava:1604)
Caused by: java.lang.NoSuchMethodError: com/sun/xml/stream/buffer/stax/StreamWriterBufferCreator.setCheckAttributeValue(Z )V
at com.sun.xml.ws.security.opt.impl.message.SOAPBody. cachePayLoad(SOAPBody.java:204)
at com.sun.xml.ws.security.opt.impl.dsig.SignedMessag ePart.writeTo(SignedMessagePart.java:147)
at com.sun.xml.ws.security.opt.impl.crypto.JAXBDataIm pl.writeTo(JAXBDataImpl.java:117)
at com.sun.xml.ws.security.opt.crypto.dsig.Exc14nCano nicalizer.transform(Exc14nCanonicalizer.java:181)
at com.sun.xml.ws.security.opt.crypto.dsig.Transform. transform(Transform.java:178)
at com.sun.xml.ws.security.opt.crypto.dsig.Reference. transform(Reference.java:183)
at com.sun.xml.ws.security.opt.crypto.dsig.Reference. digest(Reference.java:124)
at com.sun.xml.ws.security.opt.crypto.dsig.Signature. sign(Signature.java:214)
at com.sun.xml.ws.security.opt.impl.dsig.SignaturePro cessor.sign(SignatureProcessor.java:122)
at com.sun.xml.wss.impl.filter.SignatureFilter.sign(S ignatureFilter.java:544)
at com.sun.xml.wss.impl.filter.SignatureFilter.proces s(SignatureFilter.java:506)
at com.sun.xml.wss.impl.HarnessUtil.processWSSPolicy( HarnessUtil.java:93)
at com.sun.xml.wss.impl.HarnessUtil.processDeep(Harne ssUtil.java:268)
at com.sun.xml.wss.impl.SecurityAnnotator.processMess agePolicy(SecurityAnnotator.java:186)
at com.sun.xml.wss.impl.SecurityAnnotator.secureMessa ge(SecurityAnnotator.java:147)
at com.sun.xml.wss.jaxws.impl.SecurityTubeBase.secure OutboundMessage(SecurityTubeBase.java:390)
at com.sun.xml.wss.jaxws.impl.SecurityClientTube.proc essClientRequestPacket(SecurityClientTube.java:239 )
at com.sun.xml.wss.jaxws.impl.SecurityClientTube.proc essRequest(SecurityClientTube.java:167)
... 53 more
Agradecería si pudieran darme alguna idea del origen del problema o alguna manera de solucionarlo.