2017-02-13 2 views
0

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.

+0

Können Sie Ihren Server xml auch posten? Danke –

+0

@AbelardChow Danke für den schnellen Kommentar bearbeitet! und enthalten. –

+0

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. –

Antwort

0

Blick auf den Server Xml. Ich sehe keinen JNDI-Eintrag definiert. Basierend auf dem Code sollte versucht werden, über ein Servlet auf einen JNDI-Eintrag zuzugreifen. In diesem Fall, wo definieren Sie Ihren JNDI-Eintrag an erster Stelle?

Ich glaube, Sie müssen die nach dem JNDI Eintrag in der Server xml

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

Bitte geben Sie es zu definieren, einen Versuch

+0

Nicht alle JNDI-Ressourcen müssen in der Datei server.xml als '' Elemente registriert werden. EJBs, JDBC-Datenquellen und viele andere Ressourcen können in JNDI registriert werden, ohne dass eine Konfiguration in der Datei server.xml vorhanden ist. –

+0

@AndyGuibert Ich verstehe immer noch nicht. Ich habe gelesen, was dort geschrieben wurde, aber ich konnte die Details nicht finden, die ich suche. –

+0

Ich frage, welche Art von Objekt die FlightService-Klasse ist. Ist es ein Ejb? Ist es ein Webservice? –

Verwandte Themen