[ http://issues.apache.org/jira/browse/AXIS2-849?page=comments#action_12422086 ] Michele Mazzucco commented on AXIS2-849: ----------------------------------------
Deepal, now the message is sent, however the control is not returned to the caller This is the chunk of code calling the send method try { if (log.isDebugEnabled()) { log.debug("Handler [" + super.service + "]: sending request..."); } send(request, node); if (log.isDebugEnabled()) { log.debug("Handler [" + super.service + "]: request sent"); } this.busy.add(node); } catch (AxisFault e) { this.idle.add(node); if (log.isEnabledFor(Level.ERROR)) { log.error("Handler [" + this.service + "]: send failed " + e.getLocalizedMessage()); } } while this is the send() method using sendRobust() protected final void send(Schedulable r, String node) throws AxisFault { // Creates the endpoint String target = createTargetPath(node); EndpointReference targetEPR = new EndpointReference(target); // Creates and fills the options Options options = new Options(); options.setTo(targetEPR); options.setAction(r.getWSAction()); options.setTransportInProtocol(Constants.TRANSPORT_HTTP); // Uses 2 channels options.setUseSeparateListener(true); ServiceClient sender = new ServiceClient(); sender.engageModule(QOSPConstants.MODULE_ADDRESSING); sender.setOptions(options); sender.addHeader(createHeader(r, System.currentTimeMillis())); //sender.fireAndForget(r.getRequest()); // fireAndForget + Thread.sleep() works fine sender.sendRobust(r.getRequest()); if (log.isDebugEnabled()) { log.debug("Send robust successfully executed"); } } And this is the log: INFO QueueSizeScheduler:queueRequest - Found node [10.8.149.156:18080] DEBUG QueueSizeServiceHandler:submitRequest - Handler [MyService]: sending request... DEBUG QueueSizeServiceHandler:computeLoad - Handler [MyService]:history size is [2] DEBUG QueueSizeScheduler$LoadCalculationTask:run - Handler [MyService], load is [0.3563283922462942] DEBUG QueueSizeScheduler$LoadCalculationTask:run - Sum is [0.35632839798927307] .... As you can see the log after the send() method (or the log after the sendRobust() call) are missing. What happens there? > NullPointerException in OutInAxisOperationClient > ------------------------------------------------- > > Key: AXIS2-849 > URL: http://issues.apache.org/jira/browse/AXIS2-849 > Project: Apache Axis 2.0 (Axis2) > Issue Type: Bug > Components: client-api > Affects Versions: 1.0 > Environment: Windows XP SP2, Java J2SE 1.5.0_03, Axis 2 SNAPSHOT Jun > 08, 2006 > Reporter: Michele Mazzucco > Assigned To: Deepal Jayasinghe > > I'm trying to send a message from a web service A to a web service B, but I > get this exception: > ERROR > ncl.qosp.controller.scheduler.weighted.WeightedAvgRespTimeServiceHandler > - java.lang.NullPointerException > at > org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:260) > at > org.apache.axis2.client.ServiceClient.sendRobust(ServiceClient.java:350) > at > org.apache.axis2.client.ServiceClient.sendRobust(ServiceClient.java:330) > at > ncl.qosp.controller.scheduler.weighted.WeightedAvgRespTimeServiceHandler.client(WeightedAvgRespTimeServiceHandler.java:609) > at > ncl.qosp.controller.scheduler.weighted.WeightedAvgRespTimeServiceHandler.send(WeightedAvgRespTimeServiceHandler.java:560) > at > ncl.qosp.controller.scheduler.weighted.WeightedAvgRespTimeServiceHandler.addResource(WeightedAvgRespTimeServiceHandler.java:333) > at > ncl.qosp.controller.scheduler.weighted.WeightedAvgRespTimeScheduler.requireResources(WeightedAvgRespTimeScheduler.java:296) > at > ncl.qosp.controller.scheduler.weighted.WeightedAvgRespTimeServiceHandler.setOptimalValue(WeightedAvgRespTimeServiceHandler.java:284) > at > ncl.qosp.controller.scheduler.weighted.WeightedAvgRespTimeScheduler$ReminderTask.reallocateResources(WeightedAvgRespTimeScheduler.java:549) > at > ncl.qosp.controller.scheduler.weighted.WeightedAvgRespTimeScheduler$ReminderTask.run(WeightedAvgRespTimeScheduler.java:519) > at java.util.TimerThread.mainLoop(Timer.java:512) > at java.util.TimerThread.run(Timer.java:462) > The chunk of code generating the above exception is: > EndpointReference targetEPR = new EndpointReference(target); > Options options = new Options(); > options.setTo(targetEPR); > options.setAction("urn:echo"); > options.setTransportInProtocol(Constants.TRANSPORT_HTTP); > options.setUseSeparateListener(true); > ServiceClient sender = new ServiceClient(); > sender.engageModule(new QName(Constants.MODULE_ADDRESSING)); > sender.setOptions(options); > > try { > sender.sendRobust(r.request); > } catch (Exception e) { > StringWriter sw = new StringWriter(); > PrintWriter pw = new PrintWriter(sw); > e.printStackTrace(pw); > log.error(sw.getBuffer().toString()); > pw.close(); > } > Please note that this code works if a sendReceiveNonBlocking() call is > used instead of sendRobust(). -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]