In dieser Lerneinheit erstellen Sie ein webfähiges Bundle, das ein Servlet enthält, das auf den Zählerservice zugreift und die Ergebnisse des Service anzeigt. Das Servlet greift auf den OSGi-Service zu, indem es den Service über eine JNDI-Schnittstelle InitialContext sucht.
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 Automatisch generierter Konstruktor-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 Automatisch generierter Methodenstub
}
}
Sie haben das Servlet erstellt, das auf einen OSGi-Service zugreift, indem es den Service über eine JNDI-Schnittstelle InitialContext sucht.