10 Replies Latest reply on Dec 27, 2007 3:37 PM by marklittle

    .Net, jboss interop error - Invalid response code returned:

    gllambi

      Hi Mark! We are testing the interoperability between jboss and .Net using ws-at and after working a while we get stucked with a little problem with certificates that we couldn't solve.

      We have a the taxi service example and a .Net client. When the client calls the taxi service, this exception is thrown:

      23:29:08,906 INFO [AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009
      23:29:08,968 INFO [Server] JBoss (MX MicroKernel) [4.2.0.GA (build: SVNTag=JBoss_4_2_0_GA date=200705111440)] Started in 49s:922ms
      23:29:28,531 INFO [STDOUT] TaxiServiceAT transaction id =AtomicTransactionIdentifier: urn:uuid:1c079ef9-6258-4657-8ea4-7216c5826cb1
      23:29:28,531 INFO [STDOUT] TaxiServiceAT - enrolling...
      23:29:55,156 ERROR [STDERR] bookTaxi: Participant enrolment failed
      23:29:55,156 ERROR [STDERR] com.arjuna.wst.SystemException: Sender[[com.arjuna.webservices.transport.http.HttpClient_4] - Invalid response code returned: 400]
      23:29:55,156 ERROR [STDERR] at com.arjuna.mwlabs.wst.at.remote.TransactionManagerImple.registerParticipant(TransactionManagerImple.java:215)
      23:29:55,156 ERROR [STDERR] at com.arjuna.mwlabs.wst.at.remote.TransactionManagerImple.enlistForDurableTwoPhase(TransactionManagerImple.java:77)
      23:29:55,156 ERROR [STDERR] at com.arjuna.xts.nightout.services.Taxi.TaxiServiceAT.bookTaxi(TaxiServiceAT.java:67)
      23:29:55,171 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      23:29:55,171 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      23:29:55,171 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      23:29:55,171 ERROR [STDERR] at java.lang.reflect.Method.invoke(Unknown Source)
      23:29:55,171 ERROR [STDERR] at org.jboss.ws.core.server.ServiceEndpointInvokerJSE.invokeServiceEndpointInstance(ServiceEndpointInvokerJSE.java:104)
      23:29:55,171 ERROR [STDERR] at org.jboss.ws.core.server.AbstractServiceEndpointInvoker.invoke(AbstractServiceEndpointInvoker.java:207)
      23:29:55,171 ERROR [STDERR] at org.jboss.ws.core.server.ServiceEndpoint.processRequest(ServiceEndpoint.java:212)
      23:29:55,171 ERROR [STDERR] at org.jboss.ws.core.server.ServiceEndpointManager.processRequest(ServiceEndpointManager.java:448)
      23:29:55,171 ERROR [STDERR] at org.jboss.ws.core.server.AbstractServiceEndpointServlet.doPost(AbstractServiceEndpointServlet.java:114)
      23:29:55,171 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
      23:29:55,171 ERROR [STDERR] at org.jboss.ws.core.server.AbstractServiceEndpointServlet.service(AbstractServiceEndpointServlet.java:75)
      23:29:55,171 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
      23:29:55,171 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      23:29:55,171 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      23:29:55,171 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      23:29:55,171 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      23:29:55,171 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      23:29:55,171 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
      23:29:55,171 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
      23:29:55,171 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
      23:29:55,171 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
      23:29:55,171 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
      23:29:55,171 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
      23:29:55,171 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
      23:29:55,171 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      23:29:55,171 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
      23:29:55,171 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
      23:29:55,171 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
      23:29:55,171 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      23:29:55,171 ERROR [STDERR] at java.lang.Thread.run(Unknown Source)

      Do you have any idea why this exception is thrown?

      Thanks a lot!

      Guzman

        • 1. Re: .Net, jboss interop error - Invalid response code return
          jhalliday

          That's probably from a SOAP fault at the point where XTS attempts to enrol the participant with the coordinator. Which coordinator are you using in this scenario?

          • 2. Re: .Net, jboss interop error - Invalid response code return
            gllambi

            The .Net client begins the transaction and then calls the TaxiService, so I supose the root coordinator is the MSDTC and arjuna is the subordinate coordinator.

            We turn ssl debug and here is the output. Maybe it helps. We have been stucked with this error for a long time and it's very important to us to solve it.

            Thanks a lot!

            Guzmán

            2007-07-27 18:11:23,562 INFO [STDOUT] %% Cached client session: [Session-1, SSL_RSA_WITH_RC4_128_MD5]
            2007-07-27 18:11:23,672 INFO [STDOUT] http-127.0.0.1-8080-1, WRITE: TLSv1 Application Data, length = 330
            2007-07-27 18:11:23,687 INFO [STDOUT] http-127.0.0.1-8080-1, WRITE: TLSv1 Application Data, length = 1779
            2007-07-27 18:11:24,203 INFO [STDOUT] http-127.0.0.1-8080-1, READ: TLSv1 Application Data, length = 131
            2007-07-27 18:11:24,218 ERROR [STDERR] bookTaxi: Participant enrolment failed
            2007-07-27 18:11:24,218 ERROR [STDERR] com.arjuna.wst.SystemException: Sender[[com.arjuna.webservices.transport.http.HttpClient_4] - Invalid response code returned: 400]
            2007-07-27 18:11:24,218 ERROR [STDERR] at com.arjuna.mwlabs.wst.at.remote.TransactionManagerImple.registerParticipant(TransactionManagerImple.java:215)
            2007-07-27 18:11:24,218 ERROR [STDERR] at com.arjuna.mwlabs.wst.at.remote.TransactionManagerImple.enlistForDurableTwoPhase(TransactionManagerImple.java:77)
            2007-07-27 18:11:24,218 ERROR [STDERR] at com.arjuna.xts.nightout.services.Taxi.TaxiServiceAT.bookTaxi(TaxiServiceAT.java:67)
            2007-07-27 18:11:24,218 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            2007-07-27 18:11:24,218 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            2007-07-27 18:11:24,218 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            2007-07-27 18:11:24,218 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:585)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.jboss.ws.core.server.ServiceEndpointInvokerJSE.invokeServiceEndpointInstance(ServiceEndpointInvokerJSE.java:104)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.jboss.ws.core.server.AbstractServiceEndpointInvoker.invoke(AbstractServiceEndpointInvoker.java:207)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.jboss.ws.core.server.ServiceEndpoint.processRequest(ServiceEndpoint.java:212)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.jboss.ws.core.server.ServiceEndpointManager.processRequest(ServiceEndpointManager.java:448)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.jboss.ws.core.server.AbstractServiceEndpointServlet.doPost(AbstractServiceEndpointServlet.java:114)
            2007-07-27 18:11:24,218 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.jboss.ws.core.server.AbstractServiceEndpointServlet.service(AbstractServiceEndpointServlet.java:75)
            2007-07-27 18:11:24,218 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
            2007-07-27 18:11:24,218 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
            2007-07-27 18:11:24,234 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
            2007-07-27 18:11:24,234 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            2007-07-27 18:11:24,234 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
            2007-07-27 18:11:24,234 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
            2007-07-27 18:11:24,234 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
            2007-07-27 18:11:24,234 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
            2007-07-27 18:11:24,234 ERROR [STDERR] at java.lang.Thread.run(Thread.java:595)
            2007-07-27 18:11:24,234 DEBUG [org.jboss.ws.core.EndpointInvocation] setReturnValue: null
            2007-07-27 18:11:24,234 DEBUG [org.jboss.ws.core.jaxrpc.handler.MessageContextJAXRPC] Begin response processing
            2007-07-27 18:11:24,234 DEBUG [org.jboss.ws.core.jaxrpc.SOAP11BindingJAXRPC] bindResponseMessage: {http://www.jboss.com/jbosstm/xts/demo/Taxi}bookTaxi
            2007-07-27 18:11:24,234 DEBUG [org.jboss.ws.core.jaxrpc.handler.HandlerChainBaseImpl] Enter: handleResponse
            2007-07-27 18:11:24,234 DEBUG [org.jboss.ws.core.jaxrpc.handler.HandlerChainBaseImpl] Exit: handleResponse with status: true
            2007-07-27 18:11:24,234 DEBUG [org.jboss.ws.core.server.ServiceEndpoint] END handleRequest: jboss.ws:context=xtsdemowebservices,endpoint=TaxiServiceAT
            2007-07-27 18:11:24,281 DEBUG [org.jboss.ws.core.soap.MessageContextAssociation] popMessageContext: org.jboss.ws.core.jaxrpc.handler.SOAPMessageContextJAXRPC@1542c06 (Thread http-127.0.0.1-8080-1)
            2007-07-27 18:11:29,234 INFO [STDOUT] Keep-Alive-Timer, called close()
            2007-07-27 18:11:29,234 INFO [STDOUT] Keep-Alive-Timer, called closeInternal(true)
            2007-07-27 18:11:29,234 INFO [STDOUT] Keep-Alive-Timer
            2007-07-27 18:11:29,234 INFO [STDOUT] , SEND TLSv1 ALERT:
            2007-07-27 18:11:29,234 INFO [STDOUT] warning,
            2007-07-27 18:11:29,234 INFO [STDOUT] description = close_notify
            2007-07-27 18:11:29,234 INFO [STDOUT] Keep-Alive-Timer, WRITE: TLSv1 Alert, length = 18
            


            • 3. Re: .Net, jboss interop error - Invalid response code return
              marklittle

              SSL support in WS-TX is optional. We don't support it in our implementation at this time. That could be your problem.

              • 4. Re: .Net, jboss interop error - Invalid response code return
                gllambi

                Thanks for the answer! Reading other posts make me think that the interop between .Net and JBoss is possible. Kevin Conner said in post http://www.jboss.org/index.html?module=bb&op=viewtopic&t=100138&postdays=0&postorder=asc&start=0


                All interop testing was done with HTTP and not HTTPS, even for the recent OASIS interop.

                The standard java classes support HTTPS so we should be able to talk with the microsoft server. Have you looked at the jsse documentation for how to configure this?

                Kev


                And stone_42 answered afterwards:


                Finally, I made ws-tx interoperation between microsoft and JBossTS work.
                The sole problem was that my ssl keystore was configured incorrect. Having fixed that, ws-tx is working fine.


                So I thought it is posible. So you mean that it isn't possible to have interoperability between .Net and JBoss with the actual implementation? Or maybe we can make a few changes in the implementation to get this support. If the latter is possible, could you tell me which classes?

                Thanks a lot!

                Guzmán


                • 5. Re: .Net, jboss interop error - Invalid response code return
                  marklittle

                   

                  "gllambi" wrote:
                  So I thought it is posible. So you mean that it isn't possible to have interoperability between .Net and JBoss with the actual implementation?


                  No, that's not what I meant. When we did the interoperability with Microsoft and IBM during the standards work, the group did not mandate HTTPS, so we only tested against HTTP. Now as Kev has said, it *should* just work (tm), but since we haven't tried it, there may be some unknown issues.

                  • 6. Re: .Net, jboss interop error - Invalid response code return

                    Interop between .NET and JBossTS is infact quite difficult. My last tests ran with JBossTS 4.2.3sp5 and did not work at all. But the problem I had with sp5 should be fixed in the current release (sp7, see issue JBTM-254).

                    Anyway, using an earlier release (think it was 4.2.2), I had interop running, but it did not run in all cases. The only usecase running was with JBossTS starting the transaction and a .NET WCF web service as participant. Other scenarios like .NEt starting the transaction or more complex like JBossTS starting the transaction, calling a .NET web service that in turn called a web service using JBossTS failed.

                    When we did the interoperability with Microsoft and IBM during the standards work, the group did not mandate HTTPS, so we only tested against HTTP.

                    That does not work (perhaps it worked with a beta version of Microsoft's WCF), because Microsoft strictly demands https for communication between transaction coordinator and participants.

                    Hope this information can help!

                    Regards, Martin

                    • 7. Re: .Net, jboss interop error - Invalid response code return
                      gllambi

                      Martin, thank you very much for your reply! Unfortunatelly we put in the freezer our interoperability test between JBossTS and WCF until this problem is solved.

                      It's interesting to know that you could achive interoperability when JBossTS is the coordinator and WCF the participant. The other way round we weren't so lucky.

                      Again, thanks a lot!

                      Best Regards,
                      Guzman

                      • 8. Re: .Net, jboss interop error - Invalid response code return
                        marklittle

                         

                        "stone_42" wrote:

                        When we did the interoperability with Microsoft and IBM during the standards work, the group did not mandate HTTPS, so we only tested against HTTP.

                        That does not work (perhaps it worked with a beta version of Microsoft's WCF), because Microsoft strictly demands https for communication between transaction coordinator and participants.


                        Just to make it clear: as one of the authors (and editors) of the WS-TX standard I can tell you that HTTPS is not mandated by the specifications for any of the interactions, in the same way it's not mandated by other specs/standards in WS-*. Check out WS-Coordination, WS-AT, or WS-BA. So while it is a good feature to support, if MSFT do not provide a way in which to disable this, they are breaking interoperability and conformance. You may want to ask them about this while you wait for us to support the feature.

                        • 9. Re: .Net, jboss interop error - Invalid response code return
                          gllambi

                          Thanks!. We knew this and found it strange that MS made this mandatory when nothing about this is said in the specs.

                          Does JBoss have plans to incorporate this feature in the near future?

                          Thanks again!
                          Guzman

                          • 10. Re: .Net, jboss interop error - Invalid response code return
                            marklittle

                            We've had this JIRA for a while, but I've added this issue to be more explicit. I spoke with MSFT the other week and at least got agreement that what they're doing isn't strictly in the letter of the standard.