[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

Paul Robinson (Commented) (JIRA) jira-events at lists.jboss.org
Sat Nov 5 07:45:45 EDT 2011


    [ https://issues.jboss.org/browse/JBTM-937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12640550#comment-12640550 ] 

Paul Robinson commented on JBTM-937:
------------------------------------

We shouldn't use @HandlerChain on a generated client SEI:

https://issues.jboss.org/browse/JBWS-1672
http://java.net/jira/browse/JAX_WS-458
https://issues.apache.org/jira/browse/CXF-1253

I've fixed the Bistro demo to add the client side handler chain through the binding provider and removed the @HandlerChain annotation from the Restaurant SEI.
                
> 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, TxBridge
>    Affects Versions: 4.15.3
>            Reporter: Ivo Studensky
>            Assignee: Paul Robinson
>             Fix For: 4.15.4
>
>
> 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