FileDocCategorySizeDatePackage
JMSURLStubTest.javaAPI DocApache Axis 1.45048Sat Apr 22 18:56:52 BST 2006samples.jms.stub

JMSURLStubTest

public class JMSURLStubTest extends TestCase
Demonstrates use of wsdl2java-generated static stubs to invoke JMS endpoints. The JMS listener is an intermediary that receives the JMS service request and invokes the actual stock quote service over HTTP.
author
Ray Chun (rchun@sonicsoftware.com)

Fields Summary
Constructors Summary
public JMSURLStubTest(String name)

        super(name);
    
Methods Summary
public static java.lang.FloatgetQuote(java.lang.String ticker)

        float quote = -1.0F;

        GetQuoteServiceLocator locator = new GetQuoteServiceLocator();
        GetQuote getQuote;

        try {
            getQuote = locator.getGetQuote();
        }
        catch (ServiceException e) {
            throw new AxisFault("JAX-RPC ServiceException caught: ", e);
        }
        assertTrue("getQuote is null", getQuote != null);

        try {
            quote = getQuote.getQuote(ticker);
            System.out.println("quote: " + quote);

            // close matching connectors
            // note: this is optional, as all connectors will be closed upon exit
            String endptAddr = locator.getGetQuoteAddress();
            JMSTransport.closeMatchingJMSConnectors(endptAddr, null, null);
        }
        catch (RemoteException e) {
            throw new AxisFault("Remote Exception caught: ", e);
        }
        return new Float(quote);
    
public static voidmain(java.lang.String[] args)
Conn args are still required to set up the JMS listener

        Options opts = new Options( args );

        // first check if we should print usage
        if ((opts.isFlagSet('?") > 0) || (opts.isFlagSet('h") > 0))
            printUsage();

        String username = opts.getUser();
        String password = opts.getPassword();

        HashMap connectorMap = SimpleJMSListener.createConnectorMap(opts);
        HashMap cfMap = SimpleJMSListener.createCFMap(opts);
        String destination = opts.isValueSet('d");

        args = opts.getRemainingArgs();
        if ( args == null || args.length == 0)
            printUsage();

        // create the jms listener
        SimpleJMSListener listener = new SimpleJMSListener(connectorMap,
                                                           cfMap,
                                                           destination,
                                                           username,
                                                           password,
                                                           false);
        listener.start();

        JMSURLStubTest stubTest = new JMSURLStubTest("JMS URL static stub test");

        for (int i = 0; i < args.length; i++)
        {
            try
            {
                Float quote = stubTest.getQuote(args[i]);
                System.out.println(args[i] + ": " + quote);
            }
            catch(AxisFault af)
            {
                System.out.println(af.dumpToString());
            }
        }

        listener.shutdown();

        System.exit(1);
    
public static voidprintUsage()

        System.out.println("JMSURLStubTest: Tests JMS transport by obtaining stock quote using wsdl2java-generated stub classes");
        System.out.println("  Usage: JMSURLStubTest <symbol 1> <symbol 2> <symbol 3> ...");
        System.out.println("   Opts: -? this message");
        System.out.println();
        System.out.println("       -c connection factory properties filename");
        System.out.println("       -d destination");
        System.out.println("       -t topic [absence of -t indicates queue]");
        System.out.println();
        System.out.println("       -u username");
        System.out.println("       -w password");
        System.out.println();
        System.out.println("       -s single-threaded listener");
        System.out.println("          [absence of option => multithreaded]");

        System.exit(1);