我正在使用IBM WebSphere Application Server Liberty来执行JNDI查找。我非常确定正确地提供项目中资源的位置。但是,当我运行此命令时,我找不到名称错误。
以下是执行查找的代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
PrintWriter out = response.getWriter();
response.setContentType("text/html");
try {
FlightService flightService = (FlightService)new InitialContext().lookup("java:comp/Web1/FlightService!com.airline.FlightService");
}
catch(Exception ex){
ex.printStackTrace();
}
if(flightService !=null){
out.println(flightService.getAirplaneModel());
out.println(flightService.getFrom());
out.println(flightService.getTo());
}
}
这是server.xml:
<server description="new server">
<!-- Enable features -->
<featureManager>
<feature>webProfile-7.0</feature>
<feature>localConnector-1.0</feature>
</featureManager>
<!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" -->
<httpEndpoint httpPort="9090" httpsPort="9443" id="defaultHttpEndpoint"/>
<!-- Automatically expand WAR files and EAR files -->
<applicationManager autoExpand="true"/>
<applicationMonitor updateTrigger="mbean"/>
<webApplication id="Web1" location="Web1-0.0.1-SNAPSHOT.war" name="Web1"/>
</server>
我不确定,如果我必须设置任何配置相关的属性。任何帮助将不胜感激。
答案 0 :(得分:0)
查看服务器xml。我没有看到JNDI条目的定义。 基于代码,它应该尝试从servlet访问JNDI条目。在这种情况下,您首先在哪里定义JNDI条目?
我认为您需要以下内容来定义服务器xml中的JNDI条目
请试一试