[jbossts-users] Transaction interopability between JBoss 4.2.2 with JBoss TS 4.2.3 SP7 and Glassfish v2

Matthias Buchholz buchholz.matthias at gmx.net
Fri Aug 8 04:21:57 EDT 2008


Hello,

i am new to this list, and i am currently working on my diploma thesis 
around web service transactions.

In the meantime i am trying to establish a transactinal communication 
between a servlet client on JBoss 4.2.2 with JBoss TS 4.2.3 SP7 
correctly installed (all demo applications run) and a simple HelloWorld 
web service on a glassfish v2 with wsit 1.1.
When my client servlet invokes the web service, the transaction context 
is correctly attached to the soap message, the registration of the 
participant fails. Following Exception occurs:
javax.xml.ws.soap.SOAPFaultException: WSTX-AT-0022: Registration with 
durable parent failed: ' coordId=urn:-3f574dec:545:489b0928:6a partId:2 '
    at 
org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.getSOAPFaultException(SOAPFaultHelperJAXWS.java:69)
    at 
org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS.throwFaultException(SOAP11BindingJAXWS.java:109)
    at 
org.jboss.ws.core.CommonSOAPBinding.unbindResponseMessage(CommonSOAPBinding.java:553)
    at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:371)
    at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:243)
    at 
org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:164)
    at 
org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:150)
    at $Proxy82.sayHello(Unknown Source)
    at 
de.mabu.interop.glassfish.client.ClientServlet.doPost(ClientServlet.java:46)
    at 
de.mabu.interop.glassfish.client.ClientServlet.doGet(ClientServlet.java:33)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
    at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
    at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at 
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
    at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
    at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
    at java.lang.Thread.run(Thread.java:595)

In the upper fault scenario the two application servers are located on 
different machines, when i run both on the same machine the behavior is 
different but also without success.
In that case the web service is invoked correctly but the commit failed. 
If i understand the stack trace the problem is the failing ssl 
handshake, but i have never configured such a mechanism.
Following stack trace can be seen in the jboss logfile:

javax.net.ssl.SSLHandshakeException: 
sun.security.validator.ValidatorException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: unable to 
find valid certification path to requested target
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:150)
    at 
com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1584)
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:174)
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:168)
    at 
com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:848)
    at 
com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:106)
    at 
com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:495)
    at 
com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:433)
    at 
com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:877)
    at 
com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1089)
    at 
com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1116)
    at 
com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1100)
    at 
sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:402)
    at 
sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:170)
    at 
sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133)
    at 
com.arjuna.webservices.transport.http.HttpClient.invokeRequest(HttpClient.java:174)
    at 
com.arjuna.webservices.transport.http.HttpClient.invokeOneWay(HttpClient.java:93)
    at 
com.arjuna.webservices.wsaddr.client.BaseWSAddrClient.sendOneWay(BaseWSAddrClient.java:125)
    at 
com.arjuna.webservices.wsat.client.ParticipantClient.sendRollback(ParticipantClient.java:141)
    at 
com.arjuna.wst.messaging.engines.CoordinatorEngine.sendRollback(CoordinatorEngine.java:576)
    at 
com.arjuna.wst.messaging.engines.CoordinatorEngine.rollback(CoordinatorEngine.java:403)
    at 
com.arjuna.wst.stub.ParticipantStub.rollback(ParticipantStub.java:146)
    at 
com.arjuna.mwlabs.wst.at.participants.DurableTwoPhaseCommitParticipant.cancel(DurableTwoPhaseCommitParticipant.java:158)
    at 
com.arjuna.mwlabs.wst.at.participants.DurableTwoPhaseCommitParticipant.confirmOnePhase(DurableTwoPhaseCommitParticipant.java:214)
    at 
com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord.topLevelOnePhaseCommit(ParticipantRecord.java:492)
    at 
com.arjuna.ats.arjuna.coordinator.BasicAction.onePhaseCommit(BasicAction.java:2619)
    at 
com.arjuna.ats.arjuna.coordinator.BasicAction.End(BasicAction.java:1779)
    at 
com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:88)
    at 
com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorControl.complete(CoordinatorControl.java:140)
    at 
com.arjuna.mwlabs.wscf.model.twophase.arjunacore.TwoPhaseHLSImple.complete(TwoPhaseHLSImple.java:124)
    at 
com.arjuna.mwlabs.wsas.activity.ActivityImple.end(ActivityImple.java:312)
    at 
com.arjuna.mwlabs.wsas.UserActivityImple.end(UserActivityImple.java:279)
    at 
com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorServiceImple.confirm(CoordinatorServiceImple.java:160)
    at 
com.arjuna.mwlabs.wst.at.participants.CompletionCoordinatorImple.commit(CompletionCoordinatorImple.java:64)
    at 
com.arjuna.wst.messaging.CompletionCoordinatorProcessorImpl.commit(CompletionCoordinatorProcessorImpl.java:112)
    at 
com.arjuna.webservices.wsat.handlers.CompletionCoordinatorCommitHandler$1.executeTask(CompletionCoordinatorCommitHandler.java:64)
    at com.arjuna.services.framework.task.TaskWorker.run(TaskWorker.java:65)
    at java.lang.Thread.run(Thread.java:595)
Caused by: sun.security.validator.ValidatorException: PKIX path building 
failed: sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:221)
    at 
sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:145)
    at sun.security.validator.Validator.validate(Validator.java:203)
    at 
com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:172)
    at 
com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(SSLContextImpl.java:320)
    at 
com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:841)
    ... 33 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target
    at 
sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:236)
    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:194)
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:216)
    ... 38 more

on the glassfish side only a warning that the transaction registration 
could not be established is logged:

[#|2008-08-08T10:03:08.647+0200|WARNING|sun-appserver9.1|javax.enterprise.resource.webservices.jaxws.wstx.wscoord|_ThreadID=22;_ThreadName=httpSSLWorkerThread-1284-0;_RequestID=be323618-14ea-427f-9d43-50ec97c4c136;|WSTX-COORDINATOR-3007: 
registration timed out for activity id: 'urn:a003f16:4c5:489bfcb0:6b' 
Attempted to register with:
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>   
<EndpointReference xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">
<Address>http://localhost:8080/xts/soap/RegistrationCoordinator</Address>
<ReferenceParameters>
<wsarj:InstanceIdentifier 
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" 
xmlns:wscoor="http://schemas.xmlsoap.org/ws/2004/10/wscoor" 
xmlns:wsarj="http://schemas.arjuna.com/ws/2005/10/wsarj">a003f16:4c5:489bfcb0:6b</wsarj:InstanceIdentifier>
</ReferenceParameters>
</EndpointReference>'|#]

Does anyone know what i have to do?

Best regards

Matthias







More information about the jbossts-users mailing list