listener for ESBAware message+Socket communication
sandeepgowda Nov 23, 2010 8:10 AMHi,
I am trying to use Jboss ESB as an interceptor for IP socket comunication.
Usecase:
Simple message, which used to get communicated through IP socket client & server program. But now i need to do the same communication through Jboss ESB queues.
Configured the Jboss-esb.xml as below.
1)Using the Jbr-provider
2)Client code placed below(i am able to get the connection properly)
3)Listener code is placed below.
Queues are created properly,But listener java class is not getting invoked.(so that i get the message which has been transfered from client).
console of jboss esb server 4.9 below
15:29:38,519 INFO  [JBoss4ESBDeployer] create esb service, Socket.esb
15:29:38,769 INFO  [QueueService] Queue[/queue/socket_in_q] started, fullSize=200000, pageSize=2000, downCacheSize=2000
15:32:22,518 INFO  [JBossRemotingGatewayListener] JBoss Remoting Gateway listener 'listener' started.
<?xml version="1.0"?>
<jbossesb parameterReloadSecs="5"
    xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd">
    <providers>
        <jbr-provider host="localhost" name="JBR-Socket"
            protocol="socket">
            <jbr-bus busid="sockettest" port="6969" />
        </jbr-provider>
        <jms-provider connection-factory="ConnectionFactory"
            name="socket-jms-provider">
            <jms-bus busid="socketJmsProvider">
                <jms-message-filter dest-name="queue/socket_in_q"
                    dest-type="QUEUE" />
            </jms-bus>
        </jms-provider>
    </providers>
    <services>
        <service category="Socket" description="testSocket" name="socket-JMS-Service">
            <listeners>
                <jbr-listener busidref="sockettest" is-gateway="true"
                    name="socketGateway" />
                <jms-listener busidref="socketJmsProvider" name="JMSEsbAware" />
            </listeners>
            <actions>
                <action class="listener.SocketListener" name="socketlistener"
                    process="process" />
            </actions>
        </service>
    </services>
</jbossesb>
Client Code:
public class SendMessage {
    public static void main(String args[]) throws Throwable {
        SendMessage sm = new SendMessage();
sm.sendMessageToJBRListener("http", 8080, "sandeep gowda");
}
    private void sendMessageToJBRListener(String protocol, int port,
            String message) throws Throwable {
        String locatorURI = protocol + "://localhost:" + port;
        InvokerLocator locator = new InvokerLocator(locatorURI);
        System.out
                .println("Calling JBoss Remoting Listener using locator URI: "
                        + locatorURI);
        Client remotingClient = null;
        try {
            remotingClient = new Client(locator);
            remotingClient.connect();
            // Deliver the message to the listener...
            Object response = remotingClient.invoke(message);
            System.out.println("JBR Class: " + response.getClass().getName());
            System.out.println("Response from JBoss Remoting Listener '"
                    + locatorURI + "' was '" + response + "'.");
        } finally {
            if (remotingClient != null) {
                remotingClient.disconnect();
            }
        }
    }
}
Listener code:
public class SocketListener extends AbstractActionPipelineProcessor{
    
    protected ConfigTree _config;
    public SocketListener(ConfigTree config) {
        _config = config;
    }
    
    public Message process(Message arg0) throws ActionProcessingException {
        arg0.getContext();
        
        return arg0;
    }
}
Thanks
Sandeep
 
    