无法使用IBM WebSphere Application Server Liberty执行JNDI查找

时间:2017-02-13 21:36:50

标签: jndi websphere-liberty

我正在使用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>

我不确定,如果我必须设置任何配置相关的属性。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

查看服务器xml。我没有看到JNDI条目的定义。 基于代码,它应该尝试从servlet访问JNDI条目。在这种情况下,您首先在哪里定义JNDI条目?

我认为您需要以下内容来定义服务器xml中的JNDI条目

https://www.ibm.com/support/knowledgecenter/en/SSEQTP_8.5.5/com.ibm.websphere.wlp.doc/ae/twlp_dep_jndi_refentry.html

请试一试