Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-937

TxBridge demo app fails with ServiceConstructionException: Could not find portType named {http://client.demo.txbridge.jbossts.jboss.org/}Restaurant when run with JTA parent tx option

    XMLWordPrintable

Details

    Description

      With the latest AS7 (7.1.0.Alpha2-SNAPSHOT) the txbridge demo app fails due 'ServiceConstructionException: Could not find portType named

      {http://client.demo.txbridge.jbossts.jboss.org/}

      Restaurant' when run with JTA parent tx option. See the stacktrace:

      12:22:32,368 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1) javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: Could not find portType named {http://client.demo.txbridge.jbossts.jboss.org/}Restaurant
      12:22:32,368 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:313)
      12:22:32,369 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:306)
      12:22:32,369 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at javax.xml.ws.Service.getPort(Service.java:168)
      12:22:32,369 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.jboss.jbossts.txbridge.demo.client.BasicClient.testJTATransaction(BasicClient.java:221)
      12:22:32,369 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.jboss.jbossts.txbridge.demo.client.BasicClient.doGet(BasicClient.java:122)
      12:22:32,369 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
      12:22:32,369 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
      12:22:32,369 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
      12:22:32,370 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
      12:22:32,370 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
      12:22:32,370 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
      12:22:32,370 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:155)
      12:22:32,370 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
      12:22:32,370 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      12:22:32,370 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      12:22:32,371 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
      12:22:32,371 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
      12:22:32,371 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:670)
      12:22:32,371 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:952)
      12:22:32,371 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at java.lang.Thread.run(Thread.java:662)
      12:22:32,371 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1) Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Could not find portType named {http://client.demo.txbridge.jbossts.jboss.org/}Restaurant
      12:22:32,372 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.getInterfaceInfo(ReflectionServiceFactoryBean.java:611)
      12:22:32,372 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeWSDLOperations(ReflectionServiceFactoryBean.java:619)
      12:22:32,372 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeWSDLOperations(JaxWsServiceFactoryBean.java:289)
      12:22:32,372 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:392)
      12:22:32,372 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:499)
      12:22:32,372 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:241)
      12:22:32,373 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:202)
      12:22:32,373 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:438)
      12:22:32,373 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:311)
      12:22:32,373 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1)        ... 19 more
      

      After my change which is:

      $ svn diff
      Index: src/org/jboss/jbossts/txbridge/demo/client/BasicClient.java
      ===================================================================
      --- src/org/jboss/jbossts/txbridge/demo/client/BasicClient.java (revision 37673)
      +++ src/org/jboss/jbossts/txbridge/demo/client/BasicClient.java (working copy)
      @@ -218,7 +218,8 @@
               Service service = Service.create(wsdlLocation, serviceName);
       
               // use a modified client interface with @HandlerChain configured on it.
      -        Restaurant restaurant = service.getPort(Restaurant.class);
      +        QName portName = new QName("http://www.jboss.com/jbosstm/xts/demo/Restaurant", "RestaurantServiceAT");
      +        Restaurant restaurant = service.getPort(portName, Restaurant.class);
       
               System.out.println("CLIENT: calling business Web Services...");
      

      ..the demo app passes, but according to the server log the tx is not propagated to the web service (which could, however, be caused by my modification). Moreover, the demo app cannot identify such failure since the exception is eaten (and not further propagated) on the 'Restaurant' web service side. See the server log snippet:

      12:31:04,840 INFO  [org.apache.cxf.service.factory.ReflectionServiceFactoryBean] (http-thinkpax.localdomain-127.0.0.1-8080-1) Creating Service {http://bistro.demo.txbridge.jbossts.jboss.org/}BistroImplService from WSDL: http://localhost:8080/txbridge-demo-service/BistroImpl?wsdl
      12:31:04,861 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1) CLIENT: Obtaining userTransaction...
      12:31:04,862 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1) CLIENT: starting the transaction...
      12:31:04,864 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1) CLIENT: transaction ID= Transaction: TransactionImple < ac, BasicAction: 0:ffff7f000001:-3f25763a:4eaa83e2:17 status: ActionStatus.RUNNING >
      12:31:04,874 INFO  [org.apache.cxf.service.factory.ReflectionServiceFactoryBean] (http-thinkpax.localdomain-127.0.0.1-8080-1) Creating Service {http://www.jboss.com/jbosstm/xts/demo/Restaurant}RestaurantServiceATService from WSDL: http://localhost:8080/xtsdemowebservices/RestaurantServiceAT?wsdl
      12:31:04,878 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1) CLIENT: calling business Web Services...
      12:31:05,356 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-2) RestaurantServiceAT transaction id =Unknown
      12:31:05,368 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-2) RestaurantServiceAT - enrolling...
      12:31:05,404 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2) bookSeats: Participant enrolment failed
      12:31:05,404 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2) com.arjuna.wst.UnknownTransactionException
      12:31:05,404 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at com.arjuna.mwlabs.wst11.at.remote.TransactionManagerImple.enlistForDurableTwoPhase(TransactionManagerImple.java:56)
      12:31:05,404 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at com.jboss.jbosstm.xts.demo.services.restaurant.RestaurantServiceAT.bookSeats(RestaurantServiceAT.java:98)
      12:31:05,404 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      12:31:05,405 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      12:31:05,405 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      12:31:05,405 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at java.lang.reflect.Method.invoke(Method.java:597)
      12:31:05,405 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.jboss.ws.common.invocation.AbstractInvocationHandlerJSE.invoke(AbstractInvocationHandlerJSE.java:111)
      12:31:05,405 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.jboss.wsf.stack.cxf.JBossWSInvoker._invokeInternal(JBossWSInvoker.java:169)
      12:31:05,405 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.jboss.wsf.stack.cxf.JBossWSInvoker.invoke(JBossWSInvoker.java:117)
      12:31:05,406 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
      12:31:05,406 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
      12:31:05,406 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      12:31:05,406 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      12:31:05,406 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
      12:31:05,406 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
      12:31:05,407 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
      12:31:05,407 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
      12:31:05,407 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:206)
      12:31:05,407 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.jboss.wsf.stack.cxf.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:91)
      12:31:05,407 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.jboss.wsf.stack.cxf.transport.ServletHelper.callRequestHandler(ServletHelper.java:174)
      12:31:05,408 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.jboss.wsf.stack.cxf.CXFServletExt.invoke(CXFServletExt.java:87)
      12:31:05,408 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:184)
      12:31:05,408 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:107)
      12:31:05,408 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
      12:31:05,408 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.jboss.wsf.stack.cxf.CXFServletExt.service(CXFServletExt.java:135)
      12:31:05,408 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.jboss.wsf.spi.deployment.WSFServlet.service(WSFServlet.java:140)
      12:31:05,409 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
      12:31:05,409 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
      12:31:05,409 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
      12:31:05,409 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
      12:31:05,409 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
      12:31:05,409 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:155)
      12:31:05,410 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
      12:31:05,411 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      12:31:05,411 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      12:31:05,411 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
      12:31:05,412 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
      12:31:05,412 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:670)
      12:31:05,412 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:952)
      12:31:05,416 ERROR [stderr] (http-thinkpax.localdomain-127.0.0.1-8080-2)        at java.lang.Thread.run(Thread.java:662)
      12:31:05,425 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1) CLIENT: calling commit on the transaciton...
      12:31:05,426 INFO  [stdout] (http-thinkpax.localdomain-127.0.0.1-8080-1) done
      

      So there seems to be two issues actually. First, the txbridge demo app does not work with JTA parent tx type option. Second, the demo app does not fail when the transaction is not propagated to the web service.

      Attachments

        Activity

          People

            paul.robinson@redhat.com Paul Robinson
            istudens@redhat.com Ivo Studensky
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: