Forum Stats

  • 3,728,425 Users
  • 2,245,615 Discussions
  • 7,853,521 Comments

Discussions

invoking an-adf-bc-service-asynchronously through Web Services Test Client

kumar santosh
kumar santosh Member Posts: 83 Blue Ribbon

I am trying to invoke adf-bc-service-asynchronously through Web Services Test Client deployed from jdev 12.2.1.0.0 but giving the below errors :


java.lang.RuntimeException: javax.xml.ws.WebServiceException: java.net.SocketTimeoutException: Read time out after 120000 millis

at com.oracle.webservices.testclient.core.ws.cdf.SOAPBindingEngine.call(SOAPBindingEngine.java:87)

at com.oracle.webservices.testclient.wstest.InvocationDelegate.invoke(InvocationDelegate.java:46)

at com.oracle.webservices.testclient.wstest.WsTestCaller.invokeOpertion(WsTestCaller.java:95)

at com.oracle.webservices.testclient.ws.action.WsInvokeAction.execute(WsInvokeAction.java:67)

at com.oracle.webservices.testclient.ws.action.AbstractAction.process(AbstractAction.java:36)

at com.oracle.webservices.testclient.ws.res.WebserviceResource.invokeWebService(WebserviceResource.java:206)

at com.oracle.webservices.testclient.ws.res.WebserviceResource.invokeWebServiceByFormURLEncoded(WebserviceResource.java:179)

at sun.reflect.GeneratedMethodAccessor1742.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)

at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205)

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)

at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)

at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)

at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)

at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)

at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)

at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)

at org.glassfish.jersey.internal.Errors.process(Errors.java:315)

at org.glassfish.jersey.internal.Errors.process(Errors.java:297)

at org.glassfish.jersey.internal.Errors.process(Errors.java:267)

at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)

at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)

at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)

at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)

at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)

at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)

at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)

at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)

at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)

at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)

at com.oracle.webservices.testclient.web.LocaleFilter.doFilter(LocaleFilter.java:29)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)

at com.oracle.webservices.testclient.wlsweb.TestPageAccessFilter.doFilter(TestPageAccessFilter.java:43)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)

at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3701)

at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3667)

at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)

at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)

at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)

at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)

at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2443)

at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2291)

at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2269)

at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1703)

at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1663)

at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:272)

at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352)

at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)

at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)

at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)

at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:644)

at weblogic.work.ExecuteThread.execute(ExecuteThread.java:415)

at weblogic.work.ExecuteThread.run(ExecuteThread.java:355)

Caused by: javax.xml.ws.WebServiceException: java.net.SocketTimeoutException: Read time out after 120000 millis

at com.sun.xml.ws.transport.http.client.HttpClientTransport.readResponseCodeAndMessage(HttpClientTransport.java:210)

at com.sun.xml.ws.transport.http.client.HttpTransportPipe.createResponsePacket(HttpTransportPipe.java:241)

at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:232)

at weblogic.wsee.jaxws.transport.http.client.WLSHttpTransportPipe.process(WLSHttpTransportPipe.java:30)

at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:145)

at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:139)

at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136)

at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050)

at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019)

at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877)

at com.sun.xml.ws.client.Stub.process(Stub.java:463)

at com.sun.xml.ws.client.dispatch.DispatchImpl.invokeOneWay(DispatchImpl.java:323)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at weblogic.wsee.jaxws.spi.ClientInstanceInvocationHandler.invoke(ClientInstanceInvocationHandler.java:147)

at com.sun.proxy.$Proxy347.invokeOneWay(Unknown Source)

at com.oracle.webservices.testclient.core.ws.cdf.Engine.invoke(Engine.java:197)

at com.oracle.webservices.testclient.core.ws.cdf.SOAPBindingEngine.call(SOAPBindingEngine.java:60)

... 60 more

Caused by: java.net.SocketTimeoutException: Read time out after 120000 millis

at weblogic.socket.NIOInputStream.readInternal(NIOInputStream.java:177)

at weblogic.socket.NIOInputStream.read(NIOInputStream.java:110)

at weblogic.socket.NIOInputStream.read(NIOInputStream.java:73)

at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)

at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)

at java.io.BufferedInputStream.read(BufferedInputStream.java:345)

at weblogic.net.http.MessageHeader.isHTTP(MessageHeader.java:310)

at weblogic.net.http.MessageHeader.parseHeader(MessageHeader.java:232)

at weblogic.net.http.HttpClient.parseHTTP(HttpClient.java:554)

at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:688)

at weblogic.net.http.SOAPHttpURLConnection.getInputStream(SOAPHttpURLConnection.java:42)

at weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:1547)

at com.sun.xml.ws.transport.http.client.HttpClientTransport.readResponseCodeAndMessage(HttpClientTransport.java:206)

..

Please help me on this if any configuration need in server side or any changes in ear deployment.

Answers

  • Timo Hahn
    Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 36,973 Red Diamond

    You get a 'Read time out' error.

    What is the service doing?

    Have you tried to call the service synchronously?


    Timo


  • kumar santosh
    kumar santosh Member Posts: 83 Blue Ribbon

    I tried both way its giving same error. I am trying to execute multiple vos(view criteria based ) and at last commiting one Eo based vo(nearly 1100 records) attribute by invoking this service.

  • Timo Hahn
    Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 36,973 Red Diamond

    Have you tried an easy WS something like a WS that just returns a string?

    Timo


  • kumar santosh
    kumar santosh Member Posts: 83 Blue Ribbon

    Hi Timo,.


    No I have not used any WS , Simply i have called configuration.createRootApplicationModule  to get the amipl and then fetched some read only VOs and then done some commit . And exposed this method in service interface and tried invoking this after deploying this ear.


    Earlier i was getting timeout exception after 30 seconds so I increased the JTA timeout from weblogic console to 5mins but now this readonlysocket timeout exception is coming. I am not sure if we need to set any parameters for this.

  • Timo Hahn
    Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 36,973 Red Diamond

    Why do you call configuration.createApplicationModule?

    When you create a method in the application module and expüost ist as web service you don't need to handle the application module pooling yourself.

    Try creating a simple methos in the AM that return a simple string like 'hello' and expose is as soap web service. Then try to call this method as a test. Once you get this working, you add more logic to the method (or create a new one that has more logic).


    Timo


  • kumar santosh
    kumar santosh Member Posts: 83 Blue Ribbon

    Dear Timo,

    I had already tested with for few employess(5) and it was successful and when I am considering for 1200 employees reading data its giving error.


    I had created configuration.createApplicationModule because am and view objects was not accessible when I was trying testing with main method in AMPL that is the reason I used configuration.createApplicationModule? in appmodule to access the amimpl and vos.

  • kumar santosh
    kumar santosh Member Posts: 83 Blue Ribbon

    I have removed configuration.createApplicationModule and tried in normal way u said and tried again invoking still getting same issues. Its getting SocketTimeoutException exactly after 2 mins.

  • Timo Hahn
    Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 36,973 Red Diamond

    So, you know thth the WS works in principle. Good. The problem seems to be the time needed to get all rows you want to process.

    Question: why would you need to transfer 1200 rows at once?

    Think about some kind of pagination.

    Or try to find out why the query or retriving hte data takes so much time. Sample: if you are only interested in reading data, use a VO in forward only mode. This speeds up reading a lot as no data has to be stored in hte internal cache system.


    Timo


  • kumar santosh
    kumar santosh Member Posts: 83 Blue Ribbon

    Dear Timo,


    Below are the answers for your query :


    Question: why would you need to transfer 1200 rows at once?

    -I have to update the records for this employees based on some logics calcualtion .


    I tried to use setforward in Vo but no luck.

  • Timo Hahn
    Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 36,973 Red Diamond

    Question: why would you need to transfer 1200 rows at once?

    -I have to update the records for this employees based on some logics calcualtion .But

    But to update these records, you should not need to transfer them via a WS. Pass anything you need to update them to a method that does all the work in the model layer. This method you expose as WS and call it, passing hte right parameters.

    Timo


Sign In or Register to comment.