Hello
I get a
| 2006-07-10 16:34:24,140 DEBUG
[org.jboss.mq.il.uil2.ServerSocketManagerHandler] Exiting on IOE
| java.net.SocketException: socket closed
| at java.net.SocketInputStream.socketRead0(Native Method)
| at java.net.SocketInputStream.read(SocketInputStream.java:129)
| at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
| at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
| [...]
| 2006-07-10 16:34:24,140 DEBUG [org.jboss.mq.il.uil2.SocketManager] End
ReadTask.run
| 2006-07-10 16:34:24,140 DEBUG [org.jboss.mq.il.uil2.SocketManager] Failed
to handle: org.jboss.mq.il.uil2.msgs.CloseMsg19351667[msgType:
m_connectionClosing, msgID: 7, error: null]
| java.io.IOException: Client is not connected
| at
org.jboss.mq.il.uil2.SocketManager.internalSendMessage(SocketManager.java:265)
| at
org.jboss.mq.il.uil2.SocketManager.sendReply(SocketManager.java:239)
| [...]
| 2006-07-10 16:34:24,140 DEBUG [org.jboss.mq.il.uil2.SocketManager] Failed
to send error reply
| java.io.IOException: Client is not connected
| at
org.jboss.mq.il.uil2.SocketManager.internalSendMessage(SocketManager.java:265)
|
This happens with this code
| package de.s2i.service.tools;
|
| import org.jboss.annotation.ejb.DeliveryMode;
| import org.jboss.annotation.ejb.MessageProperties;
| import org.jboss.annotation.ejb.Producer;
|
| @Producer
| public interface Echo {
|
| public void doEcho(String payload);
|
| }
|
and
| package de.s2i.service.tools;
|
| import javax.annotation.Resource;
| import javax.ejb.ActivationConfigProperty;
| import javax.ejb.EJB;
| import javax.ejb.MessageDriven;
| import javax.ejb.MessageDrivenBean;
| import javax.ejb.MessageDrivenContext;
| import javax.jms.Message;
| import javax.jms.MessageListener;
|
| import org.jboss.annotation.ejb.Consumer;
| import org.jboss.annotation.ejb.CurrentMessage;
|
| @Consumer(activationConfig= {
| @ActivationConfigProperty(propertyName="destinationType",
| propertyValue="javax.jms.Queue"),
| @ActivationConfigProperty(propertyName="destination",
| propertyValue="queue/echo"),
| @ActivationConfigProperty(propertyName="acknowledgeMode",
propertyValue="AUTO_ACKNOWLEDGE")
| })
| public class EchoBean implements Echo {
|
| @CurrentMessage
| private javax.jms.Message currentMessage;
|
| public void doEcho(String payload) {
| System.out.println("EchoBean: "+payload);
| if (currentMessage != null) {
| try {
| if (currentMessage.getJMSReplyTo() != null) {
| System.out.println("CurMsg:
"+currentMessage.getJMSReplyTo().toString());
| } else {
| System.out.println("CurMsg: no
ReplyTo");
| }
| }catch (Exception e) {
| System.out.println("doEcho::Exception:
"+e.toString());
| }
| }
| }
| }
|
and
| package de.s2i.service.tools;
|
| import java.util.Properties;
|
| import javax.naming.InitialContext;
|
| import org.jboss.ejb3.mdb.ProducerManager;
| import org.jboss.ejb3.mdb.ProducerObject;
| import javax.jms.JMSException;
|
| public class EchoClient {
|
| public static void main(String[] args) {
| try {
| String urlName = "jnp://localhost:1099";
| Properties p = new Properties();
|
p.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
| p.put("java.naming.provider.url", urlName);
| p.put("java.naming.factory.url.pkgs",
"org.jboss.naming:org.jnp.interfaces");
| InitialContext ctx=new InitialContext(p);
| Echo
echoClient=(Echo)ctx.lookup(Echo.class.getName());
|
| ProducerObject po = (ProducerObject)echoClient;
| ProducerManager pm=po.getProducerManager();
|
| System.out.println("Going to connect ...");
| pm.setUsername("guest");
| pm.setPassword("guest");
|
| pm.connect();
|
| System.out.println("Connected - calling echo");
| try {
| echoClient.doEcho("stuff");
| } finally {
| System.out.println("sleep for 10 sec ...");
| Thread.sleep(10000);
| pm.close();
| }
| } catch (Exception e) {
| System.out.println("Exception "+e.toString());
| }
| System.out.println("Leaving ...");
| }
|
| }
|
in the logfile i see
| 2006-07-10 16:34:14,218 INFO [STDOUT] EchoBean: stuff
| 2006-07-10 16:34:14,218 INFO [STDOUT] CurMsg: no ReplyTo
|
So one way seems to work ... (is it ok, that the JMSReplyTo is empty? Is this
already the problem?)
As you can see I put a Thread.sleep(10000) in the client before actually
closing the ProducerManager, this is when the Server throws the Exception (not
before).
It looks a bit like the server wants to send the client some data, but the
client is not paying attention to it's socket ...
What do I make wrong?
greetings
Malte
PS: jboss 4.0.4GA, EJB 3.0 RC8 FD
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3956611#3956611
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3956611
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user