Re: [Axis2] SimpleHTTPServer port conflict for multiple EchoNonBlockingDualClient threads
Hi Deepal, I'm currently running 1.0RC5 and still have the same problem. May be, as you said, I need somehow to use ListenerManager. Could you please tell me what to do? Thanks, Ali Sadik Kumlali --- Deepal Jayasinghe [EMAIL PROTECTED] wrote: Hi Sadik; In the current code base we done a major improvements in our transport freamwork with the introduction of ListenerManager. So in the next release onword you wont have such a problem. Ali Sadik Kumlali wrote: Dear all, I simply changed EchoNonBlockingDualClient sample to make it run as threads and created two threads. First one successfully starts SimpleHTTPServer on port 6060 and the second one gets an java.net.BindException: Address already in use: JVM_Bind while trying to start the server. Doesn't I have an option to listen all the responses for its dedicated port? For example 6060 for first request, 6061 for the second, and so on. Or, should i assume Axis2 to use the same port for the responses of all the long running transactions? Thanks a lot for any help. Ali Sadik Kumlali -- Error Message I Get -- testEchoNonBlockingDualClient: [java] [CLIENT1] Outgoing message [java] example1:ec ho xmlns:example1=http://example1.org/example1;exampl e1:TextAxis2 Echo String /example1:Text/example1:echo [java] - Deploying module : addressing [java] [CLIENT2] Outgoing message [java] example1:echo xmlns:example1=http://example1.org/example1;exampl e1:TextAxis2 Echo String /example1:Text/example1:echo [java] - Deploying module : addressing [java] - java.net.BindException: Address already in use: JVM_Bind [java] org.apache.axis2.AxisFault: Address already in use: JVM_Bind; nested exception is: [java] java.net.BindException: Address already in use: JVM_Bind [java] at org.apache.axis2.transport.http.SimpleHTTPServer.start(Simple HTTPServer.java:220) [java] at org.apache.axis2.client.ListenerManager.makeSureStarted(Liste nerManager.java:73) -- Modified EchoNonBlockingDualClient.java -- public class EchoNonBlockingDualClient implements Runnable { private static EndpointReference targetEPR = new EndpointReference( http://127.0.0.1:8080/axis2/services/MyService;); private String name; public EchoNonBlockingDualClient(String name) { this.name = name; } publ ic OMElement getPayload() throws XMLStreamException, FactoryConfigurationError { OMElement payload = ClientUtil.getEchoOMElement(); // Log the outgoing payload StringWriter writer = new StringWriter(); payload.serialize(XMLOutputFactory.newInstance().createXMLStreamWriter( writer)); writer.flush(); System.out.println([ + name + ] Outgoing message\n + writer.toString()); return payload; } public Options getOptions() { nbsp; Options options = new Options(); options.setTo(targetEPR); options.setTransportInProtocol(Constants.TRANSPORT_HTTP); options.setUseSeparateListener(true); return options; } public void makeRequest() { try { OMElement payload = getPayload(); Options options = getOptions(); // Callback to handle the response Callback callback = new Callback() { public void onComplete(AsyncResult result) { try { StringWriter writer = new StringWriter(); result.getResponseEnvelope().serialize( XMLOutputFactory.newInstance() .createXMLStreamWriter(writer)); writer.flush(); System.out.println([ + name + ] Incoming message\n + writer.toString()); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (XMLStreamException e) { onError(e); } } public void onError(Exception e) { e.printStackTrace(); }
[Axis2] SimpleHTTPServer port conflict for multiple EchoNonBlockingDualClient threads
Dear all,I simply changed EchoNonBlockingDualClient sample to make it run as threads and created two threads. First one successfully starts SimpleHTTPServer on port 6060 and the second one gets an "java.net.BindException: Address already in use: JVM_Bind" while trying to start the server.Doesn't I have an option to listen all the responses for its dedicated port? For example 6060 for first request, 6061 for the second, and so on. Or, should i assume Axis2 to use the same port for the responses of all the long running transactions?Thanks a lot for any help.Ali Sadik Kumlali--Error Message I Get--testEchoNonBlockingDualClient: [java] [CLIENT1] Outgoing message [java] example1:ec ho xmlns:example1="http://example1.org/example1"example1:TextAxis2 Echo String /example1:Text/example1:echo [java] - Deploying module : addressing [java] [CLIENT2] Outgoing message [java] example1:echo xmlns:example1="http://example1.org/example1"example1:TextAxis2 Echo String /example1:Text/example1:echo [java] - Deploying module : addressing [java] - java.net.BindException: Address already in use: JVM_Bind [java] org.apache.axis2.AxisFault: Address already in use: JVM_Bind; nestedexception is: [java] java.net.BindException: Address already in use: JVM_Bind [java] at org.apache.axis2.transport.http.SimpleHTTPServer.start(SimpleHTTPServer.java:220) [java] at org.apache.axis2.client.ListenerManager.makeSureStarted(ListenerManager.java:73)-- Modified EchoNonBlockingDualClient.java-- public class EchoNonBlockingDualClient implements Runnable { private static EndpointReference targetEPR = new EndpointReference( "http://127.0.0.1:8080/axis2/services/MyService"); private String name; public EchoNonBlockingDualClient(String name) { this.name = name; } publ ic OMElement getPayload() throws XMLStreamException, FactoryConfigurationError { OMElement payload = ClientUtil.getEchoOMElement(); // Log the outgoing payload StringWriter writer = new StringWriter(); payload.serialize(XMLOutputFactory.newInstance().createXMLStreamWriter(writer)); writer.flush(); System.out.println("[" + name + "] Outgoing message\n"+ writer.toString()); return payload; } public Options getOptions() {& nbsp; Options options = new Options(); options.setTo(targetEPR); options.setTransportInProtocol(Constants.TRANSPORT_HTTP); options.setUseSeparateListener(true); return options; } public void makeRequest() { try { OMElement payload = getPayload(); Options options = getOptions(); // Callback to handle the response Callback callback = new Callback() {public void onComplete(AsyncResult result) { try { StringWriter writer = new StringWriter(); result.getResponseEnvelope().serialize(XMLOutputFactory.newInstance() .createXMLStreamWriter(writer)); writer.flush(); System.out.println("[" + name + "] Incoming message\n"+ writer.toString()); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (XMLStreamException e) { onError(e); }}public void onError(Exception e) { e.printStackTrace(); } }; // Non-Blocking Invocation ServiceClient sender = new ServiceClient(); sender.setOptions(options); sender.sendReceiveNonblocking(payload, callback); // Wait till the callback receives the response. while (!callback.isComplete()) {System.out.println("[" + name + "] I'm waiting for the response from the server"); Thread.sleep(1000); } // Need to close the Client Side Listener. } catch (AxisFault axisFault) { axisFault.printStackTrace(); } catch (Exception ex) { ex.printStackTrace(); } } public void run() { makeRequest(); } private static final void wait(int ms) { try { Thread.sleep(ms); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { Thread client1 = new Thread(new EchoNonBlockingDualClient("CLIENT1")); client1.start(); wait(1000); Thread client2 = new Thread(new EchoNonBlockingDualClient("CLIENT2")); client2.start(); }} Yahoo! Mail Bring photos to life! New PhotoMail makes sharing a breeze. __Do You Yahoo!?Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Re: [Axis2] SimpleHTTPServer port conflict for multiple EchoNonBlockingDualClient threads
Hi Sadik; In the current code base we done a major improvements in our transport freamwork with the introduction of ListenerManager. So in the next release onword you wont have such a problem. Ali Sadik Kumlali wrote: Dear all, I simply changed EchoNonBlockingDualClient sample to make it run as threads and created two threads. First one successfully starts SimpleHTTPServer on port 6060 and the second one gets an java.net.BindException: Address already in use: JVM_Bind while trying to start the server. Doesn't I have an option to listen all the responses for its dedicated port? For example 6060 for first request, 6061 for the second, and so on. Or, should i assume Axis2 to use the same port for the responses of all the long running transactions? Thanks a lot for any help. Ali Sadik Kumlali -- Error Message I Get -- testEchoNonBlockingDualClient: [java] [CLIENT1] Outgoing message [java] example1:ec ho xmlns:example1=http://example1.org/example1;exampl e1:TextAxis2 Echo String /example1:Text/example1:echo [java] - Deploying module : addressing [java] [CLIENT2] Outgoing message [java] example1:echo xmlns:example1=http://example1.org/example1;exampl e1:TextAxis2 Echo String /example1:Text/example1:echo [java] - Deploying module : addressing [java] - java.net.BindException: Address already in use: JVM_Bind [java] org.apache.axis2.AxisFault: Address already in use: JVM_Bind; nested exception is: [java] java.net.BindException: Address already in use: JVM_Bind [java] at org.apache.axis2.transport.http.SimpleHTTPServer.start(Simple HTTPServer.java:220) [java] at org.apache.axis2.client.ListenerManager.makeSureStarted(Liste nerManager.java:73) -- Modified EchoNonBlockingDualClient.java -- public class EchoNonBlockingDualClient implements Runnable { private static EndpointReference targetEPR = new EndpointReference( http://127.0.0.1:8080/axis2/services/MyService;); private String name; public EchoNonBlockingDualClient(String name) { this.name = name; } publ ic OMElement getPayload() throws XMLStreamException, FactoryConfigurationError { OMElement payload = ClientUtil.getEchoOMElement(); // Log the outgoing payload StringWriter writer = new StringWriter(); payload.serialize(XMLOutputFactory.newInstance().createXMLStreamWriter( writer)); writer.flush(); System.out.println([ + name + ] Outgoing message\n + writer.toString()); return payload; } public Options getOptions() { nbsp; Options options = new Options(); options.setTo(targetEPR); options.setTransportInProtocol(Constants.TRANSPORT_HTTP); options.setUseSeparateListener(true); return options; } public void makeRequest() { try { OMElement payload = getPayload(); Options options = getOptions(); // Callback to handle the response Callback callback = new Callback() { public void onComplete(AsyncResult result) { try { StringWriter writer = new StringWriter(); result.getResponseEnvelope().serialize( XMLOutputFactory.newInstance() .createXMLStreamWriter(writer)); writer.flush(); System.out.println([ + name + ] Incoming message\n + writer.toString()); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (XMLStreamException e) { onError(e); } } public void onError(Exception e) { e.printStackTrace(); } }; // Non-Blocking Invocation ServiceClient sender = new ServiceClient(); sender.setOptions(options); sender.sendReceiveNonblocking(payload, callback); // Wait till the callback receives the response. while (!callback.isComplete()) { System.out.println([ + name