2017-02-13 4 views
0

Я использую IBM WebSphere Application Server Liberty для выполнения поиска JNDI. Я уверен, что даю право на расположение ресурсов в проекте. Однако, когда я запускаю это, я получаю имя, которое не найдено.Невозможно выполнить JNDI-поиск с использованием IBM WebSphere Application Server Liberty

Вот код выполнения поиска:

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

Можете ли вы опубликовать XML Server, а? Спасибо –

+0

@AbelardChow Спасибо за быстрый комментарий! и включены. –

+0

Можете ли вы включить некоторые подробности о том, что такое 'FlightService' (EJB, JAX-WS service, источник данных и т. Д.)? Основываясь на синтаксисе поиска JNDI, который вы используете, похоже, что вы пытаетесь найти EJB, и в этом случае есть намного более простые способы получить ссылку EJB (например, инъекции). –

ответ

0

Глядя на сервер xml. Я не вижу запись JNDI. Основываясь на коде, он должен попытаться получить доступ к записи JNDI из сервлета. В этом случае, где вы определяете запись JNDI в первую очередь?

Я думаю, вам нужно определить следующее запись JNDI в XML Server

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

Пожалуйста, дайте ему попробовать

+0

Не все ресурсы JNDI должны быть зарегистрированы в server.xml как '' элементов. EJB, источники данных JDBC и многие другие ресурсы могут быть зарегистрированы в JNDI без конфигурации, присутствующей в файле server.xml. –

+0

@AndyGuibert Я до сих пор не получаю вашу точку. Я читал, что там было написано. Однако я не мог получить информацию, которую я ищу. –

+0

Я спрашиваю, какой тип объекта является классом FlightService. Это ejb? Это веб-сервис? –

Смежные вопросы