[jbossts-issues] [JBoss JIRA] (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

Ivo Studensky (Created) (JIRA) jira-events at lists.jboss.org
Fri Oct 28 17:39:45 EDT 2011


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
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: JBTM-937
                 URL: https://issues.jboss.org/browse/JBTM-937
             Project: JBoss Transaction Manager
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: Demonstrator
    Affects Versions: 4.15.3
            Reporter: Ivo Studensky
            Assignee: Jonathan Halliday


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:
{noformat}
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
{noformat}

After my change which is:
{noformat}
$ 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...");
{noformat}

..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:
{noformat}
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
{noformat}


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.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbossts-issues mailing list