Ich verwende IBM WebSphere Application Server Liberty zum Ausführen von JNDI-Lookup. Ich bin mir ziemlich sicher, den Speicherort der Ressourcen im Projekt richtig anzugeben. Wie auch immer, wenn ich das ausführe, bekomme ich einen Namen nicht gefunden Fehler.JNDI-Lookup mit IBM WebSphere Application Server Liberty kann nicht ausgeführt werden
Hier ist der Code der Durchführung der Nachschlag:
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());
}
}
Hier ist die 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>
Ich bin nicht sicher, ob ich irgendwelche Konfigurationsbezogenen Eigenschaften einstellen müssen. Jede Hilfe wäre willkommen.
Können Sie Ihren Server xml auch posten? Danke –
@AbelardChow Danke für den schnellen Kommentar bearbeitet! und enthalten. –
Können Sie einige Details angeben, was genau 'FlightService' ist (EJB, JAX-WS-Dienst, Datenquelle usw.)? Auf der Grundlage der von Ihnen verwendeten JNDI-Lookup-Syntax sieht es so aus, als würden Sie versuchen, ein EJB nachzuschlagen. In diesem Fall gibt es viel einfachere Möglichkeiten, eine EJB-Referenz (z. B. eine Injektion) zu erhalten. –