この演習では、カウンター・サービスにアクセスしてサービスの結果を表示するサーブレットが入った、Web 可能バンドルを作成します。このサーブレットは、JNDI InitialContext を介してサービスを検索することによって、OSGi サービスにアクセスします。
package com.ibm.ws.eba.servlet;
import java.io.IOException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.ibm.ws.eba.counter.Counter;
/**
* Servlet implementation class CounterServlet
*/
public class CounterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* Default constructor.
*/
public CounterServlet() {
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Counter counter;
try {
InitialContext ic = new InitialContext();
counter = (Counter) ic.lookup("osgi:service/"+Counter.class.getName());
response.getOutputStream().println("counter="+counter.getCount());
}
catch (NamingException e) {
e.printStackTrace(System.out);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
JNDI InitialContext を介してサービスを検索することによって OSGi サービスにアクセスするサーブレットを作成しました。