XQueue



กก
Write Service File


/*
*Copyright (c) Jmin. All rights reserved.
*/
package first;

import org.jmin.kernel.framework.ext.J2eeAbstractService;

/**
* service sample.
*
* @author Chris liao
* @version 1.0
*/

public class XQueueService extends J2eeAbstractService{

/**
* Here, you need't put down anything.
* It is simple ?
*/
}

Write Queue file

/*
*Copyright (c) jmin Organization. All rights reserved.
*/
package first;

import org.jmin.kernel.aspect.msg.jms.queue.XQueue;

/**
* Queue sample, just support one customer
*
* @author Chris liao
* @version 1.0
*/

public class HelloXQueue extends XQueue{

 /**
 * Here,you need't write anything
 */
}
กก

Define xml description file

//*file:service.xml

<?xml version="1.0"?>
<service id="admin">
<components>
  <component id="XQueueService" type="service">
  <class>first.XQueueService</class>
  <property name="aspectPool">
   <map>
    <entry key="hello" class="first.HelloXQueue"/>
   </map>
  </property>
 </component>
</components>
</service>
กก

Deploy Service file

Make a jar file include all class files and description file, then put the jar to Jmin deploy folder
กก

Testing

/*
*Copyright (c) Jmin. All rights reserved.
*/
package first;

import org.jmin.kernel.aspect.msg.MessageListener;
import org.jmin.kernel.aspect.msg.Message;

/**
* Queue sample.
*
* @author Chris liao
* @version 1.0
*/

public class HelloAsynListner implements MessageListener{

  /**
  * handle message
  */
  public void onMessage(Message request){
    System.out.println(request);
  }
}

/*
*Copyright (c) Jmin. All rights reserved.
*/
package first;

import org.jmin.kernel.aspect.msg.SimpleMessage;
import org.jmin.kernel.aspect.msg.jms.queue.XQueueProxy;
import org.jmin.kernel.aspect.net.NSRB;
import org.jmin.kernel.aspect.net.NetContext;
import org.jmin.kernel.framework.aspect.J2eeAspectAddress;


/**
* Queue sample.
*
* @author Chris liao
* @version 1.0
*/

public class TestQueue {

 public static void main(String args[])throws Exception{

  NSRB nsrb = NSRB.init();
  NetContext context = nsrb.createNetContext("socket://localhost:9988");
  XQueueProxy proxy = new XQueueProxy();
  proxy.bind(context);
 
  SimpleMessage request = new SimpleMessage();
  J2eeAspectAddress destination= new J2eeAspectAddress();
  destination.setAspectName("hello");
  destination.setServiceID("XQueueService");

  proxy.publish(destination,123,request);
 
 }
}

/*
*Copyright (c) Jmin. All rights reserved.
*/
package first;

import org.jmin.kernel.aspect.msg.jms.queue.XQueueProxy;
import org.jmin.kernel.aspect.net.NSRB;
import org.jmin.kernel.aspect.net.NetContext;
import org.jmin.kernel.util.Locker;

/**
* Queue sample.
*
* @author Chris liao
* @version 1.0
*/


public class TestReceiver {

 public static void main(String args[])throws Exception{

   NSRB nsrb = NSRB.init();
   NetContext context = nsrb.createNetContext("socket://localhost:9988");
   XQueueProxy proxy = new XQueueProxy();
   proxy.bind(context);

   HelloAsynListner lister = new HelloAsynListner();
   proxy.connect("XQueueService","hello",123,lister);
 
   Object obj = new Object();
   Locker.lock(obj);
 }

}


Copyright © 2006 . All Rights Reserved.