AquaLogic Analytics Query API Usage Guide

     Previous Next  Open TOC in new window   View as PDF - New Window  Get Adobe Reader - New Window
Content starts here

Generating and Using a Query API Client

This topic describes how to generate a Java client using JAX-WS, and provides code samples for using the generated client.

You can generate platform-specific client code using the Analytics Query API WSDL file. The following steps describe how to generate a Java client using JAX-WS.
Note: To generate a .NETclient, use Visual Studio. For more information, see the Microsoft Developers Network.
  1. Download and install the latest version of JAX-WS. JAX-WS can be found at https://jax-ws.dev.java.net/.
  2. Use the wsimport utility to generate the client code from the Query API WSDL. The command is

    wsimport –keep http://analytics_server:11944/analytics/QueryService?wsdl

    where analytics_server is the host of your Analytics installation.

  3. Copy the client code to your Java query project. The client is generated to the bin directory.
  4. Add javxws-ri/lib to the classpath of your project.

The following code snippet is an example of how to use the JAX-WS generated Java client.

import java.util.Calendar;
import java.util.GregorianCalendar;
import com.bea.analytics.analyticsqueryservice.*;


. . .

	AnalyticsQueryService service = new AnalyticsQueryService();
	AnalyticsQueryServicePortType port = service.getAnalyticsQueryServicePort();

. . .

//show the top 10 pages by page view, grouped by day, since 1/1/05, ignoring a page

//set the event type to be queried
	QueryParameters param = new QueryParameters();
	param.setEventName("{http://www.bea.com/analytics/ali}pageViews");

//define what information to return, in this case page view count and page id
   View view = new View();
   view.setProperty("*");
   view.setAggregate(1); 	// aggregate count
   param.getViews().add(view);

	View idView = new View();
	idView.setDimension("page");
	idView.setProperty("id");
	param.getViews().add(idView);

//filter the results
//in this case ignore a specific page
	Filter filter = new Filter();
	filter.setDimension("page");
	filter.setProperty("id");
	filter.setOperator(2);	// operator not equals
	filter.getValues().add(new Integer(518));
	param.getFilters().add(filter);

//in this case ignore pageviews before a certain date
	Filter timefilter = new Filter();
	timefilter.setDimension("time");
	timefilter.setOperator(3);	// operator greater than
	Calendar date = new GregorianCalendar();
	date.set(2005, 1, 1);
	timefilter.getValues().add(date.getTime());
	param.getFilters().add(timefilter);

//only show the top 10 pages
	Filter rankingFilter = new Filter();
	rankingFilter.setDimension("page");
	rankingFilter.setRanking(1);	// ranking top
	rankingFilter.setRankingCount(10);
	param.getFilters().add(rankingFilter);

//now, group the results
	GroupBy group = new GroupBy();
	group.setDimension("page");
	group.setProperty("name");
//note: unique "page name" = name + id
	param.getGroups().add(group);
//note: auto adds name to view

	GroupBy group1 = new GroupBy();
	group1.setDimension("time");
	group1.setTimeGrouping(3);	// group by day
	param.getGroups().add(group1);

	QueryResults result = port.executeResultSetQuery(param);
	printOutput(result);

  Back to Top      Previous Next