Re: TravelsampleHi, I can reproduce the problem now. It leads to two questions:
1) Do we model the conversation correctly here for the search? Do we use the conversation to correlate the request and response for the asynchronous search? 2) What's the correct behavior if the conversation expires? Should the container start a new conversation instead of complaining about the expiration? Thanks, Raymond From: Albert Tsang Sent: Wednesday, February 17, 2010 10:10 AM To: [email protected] Subject: Re: Travelsample Thanks Raymond, fyi – you must execute a search, let some time pass, reload or refresh the page and then re-run the exact search. Any subsequent search against the application should generate the exception. Thanks! -a- On 2/17/10 10:00 AM, "Raymond Feng" <[email protected]> wrote: Hi, Thanks for the update. I'll try to reproduce the problem and see what goes wrong here. Raymond From: Albert Tsang <mailto:[email protected]> Sent: Wednesday, February 17, 2010 9:28 AM To: [email protected] Subject: Re: Travelsample I added in @ConversationalAttributes and set maxAge to 5 minutes. I added this to all interfaces in the travelsample that were annotated as @Conversational and still get this error. - a- On 2/15/10 11:45 PM, "Albert Tsang" <[email protected]> wrote: OK, will try thanks! -a- On 2/15/10 11:41 PM, "Raymond Feng" <[email protected]> wrote: Hi, In OSOA specs of SCA, it says: " 1662 The @ConversationAttributes annotation type is used to define a set of attributes which apply to 1663 conversational interfaces of services or references of a Java class. The annotation has the following 1664 attributes: 1665 • maxIdleTime (optional) - The maximum time that can pass between operations within a single 1666 conversation. If more time than this passes, then the container may end the conversation. 1667 • maxAge (optional) - The maximum time that the entire conversation can remain active. If more 1668 time than this passes, then the container may end the conversation. 1669 • singlePrincipal (optional) – If true, only the principal (the user) that started the conversation has 1670 authority to continue the conversation. The default value is false. " Can you try to adjust the maxAge using @ConversationAttriutes against the Java component implementation class? From: Albert Tsang <mailto:[email protected]> Sent: Monday, February 15, 2010 4:11 PM To: [email protected] Subject: Travelsample I managed to get the travelsample working with the ui, booking, travelcatalog and payment working on one host and the search function with callback working on another. After a while, coming back to the ui client I get the following error after reloading the page and trying to execute a search... org.osoa.sca.ConversationEndedException: Conversation null has expired. at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.conversationPreinvoke(JDKInvocationHandler.java:464) at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:340) at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:193) at $Proxy56.searchAsynch(Unknown Source) at com.tuscanyscatours.travelcatalog.impl.TravelCatalogImpl.search(TravelCatalogImpl.java:86) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:156) at org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:60) at org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61) at org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:60) at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:346) at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:193) at $Proxy59.search(Unknown Source) at com.tuscanyscatours.impl.SCAToursImpl.search(SCAToursImpl.java:58) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:156) at org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:67) at org.apache.tuscany.sca.binding.jsonrpc.provider.JSONRPCServiceServlet.handleJSONRPCMethodInvocation(JSONRPCServiceServlet.java:257) at org.apache.tuscany.sca.binding.jsonrpc.provider.JSONRPCServiceServlet.handleServiceRequest(JSONRPCServiceServlet.java:160) at org.apache.tuscany.sca.binding.jsonrpc.provider.JSONRPCServiceServlet.service(JSONRPCServiceServlet.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.tuscany.sca.host.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:107) at org.apache.tuscany.sca.host.webapp.TuscanyServletFilter.doFilter(TuscanyServletFilter.java:94) 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:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:619)
