Hi Marco,
hmm, it should work with these changes. I've tried it with the
mini-servlet attached to this mail. It deploys in Geronimo 2.1 without
errors and works as it should. If this is still not working for you,
then I don't know what else it could be.
Janko
MarcoLaponder wrote:
Hi Janko,
Thanks for your quick response. I changed the lookup as you suggested in
option 1, but I still have the exception (except it now tells it cannot find
system-info). Any more ideas or things to check ?
Kind regards,
Marco
Janko Heilgeist-3 wrote:
Hi Marco,
the line "<ref-name>system-info</ref-name>" defines the local name of
the ServerInfo object in the context of your WAR. Therefore, you can
either
1) keep the ref-name and try to lookup "java:comp/env/system-info", or
2) keep the lookup and change the line in geronimo-web.xml to
<ref-name>ServerInfo</ref-name>.
I hope I could help you!
Regards, Janko
MarcoLaponder wrote:
I am trying to get some information for the ServerInfo object, i have
added
the gbean to my geronimo-web.xml:
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1">
<context-root>/navi</context-root>
<gbean-ref>
<ref-name>system-info</ref-name>
<ref-type>org.apache.geronimo.system.serverinfo.ServerInfo</ref-type>
<pattern>
<name>ServerInfo</name>
</pattern>
</gbean-ref>
</web-app>
and a try to get a handle of the serverinfo in my servlet by:
serverInfo = (ServerInfo)(new
InitialContext().lookup("java:comp/env/ServerInfo"));
but this throws a NameNotFoundException.
What am I doing wrong in the situation above ?
Kind regards,
Marco Laponder
package test.geronimo.gbean_in_war;
import java.io.IOException;
import java.io.PrintWriter;
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 org.apache.geronimo.system.serverinfo.ServerInfo;
public class TestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/plain");
PrintWriter out = res.getWriter();
// lookup of ServerInfo object
ServerInfo info;
try {
InitialContext ic = new InitialContext();
info = (ServerInfo) ic.lookup("java:comp/env/system-info");
} catch (NamingException ex) {
throw new ServletException("lookup failed", ex);
}
// just to check that info is indeed working as expected
out.println(info.getVersion());
out.println(info.getCopyright());
out.close();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1 http://geronimo.apache.org/xml/ns/j2ee/geronimo-web-2.0.1.xsd">
<context-root>/gbean-in-war</context-root>
<gbean-ref>
<ref-name>system-info</ref-name>
<ref-type>org.apache.geronimo.system.serverinfo.ServerInfo</ref-type>
<pattern>
<name>ServerInfo</name>
</pattern>
</gbean-ref>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- servlets and mappings -->
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>test.geronimo.gbean_in_war.TestServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/TestServlet/*</url-pattern>
</servlet-mapping>
<!-- welcome file list -->
<welcome-file-list>
<welcome-file>TestServlet</welcome-file>
</welcome-file-list>
</web-app>