Я использую 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>
Я не уверен, если я должен устанавливать какое-либо свойство, связанные конфигурации. Любая помощь будет оценена по достоинству.
Можете ли вы опубликовать XML Server, а? Спасибо –
@AbelardChow Спасибо за быстрый комментарий! и включены. –
Можете ли вы включить некоторые подробности о том, что такое 'FlightService' (EJB, JAX-WS service, источник данных и т. Д.)? Основываясь на синтаксисе поиска JNDI, который вы используете, похоже, что вы пытаетесь найти EJB, и в этом случае есть намного более простые способы получить ссылку EJB (например, инъекции). –