2017-02-13 2 views
0

J'utilise IBM WebSphere Application Server Liberty pour effectuer une recherche JNDI. Je suis à peu près certain de donner correctement l'emplacement des ressources dans le projet. Cependant, quand je cours ceci je reçois un nom non trouvé d'erreur.Impossible d'effectuer une recherche JNDI à l'aide d'IBM WebSphere Application Server Liberty

Voici le code effectuant la recherche:

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()); 

    } 
} 

Voici le 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> 

Je ne sais pas, si je dois définir les propriétés liées à la configuration. Toute aide serait appréciée.

+0

Pouvez-vous poster votre xml serveur ainsi? Merci –

+0

@AbelardChow Merci pour le commentaire rapide édité! et inclus. –

+0

Pouvez-vous inclure des détails sur ce qu'est exactement 'FlightService' (EJB, service JAX-WS, source de données, etc.)? Basé sur la syntaxe de recherche JNDI que vous utilisez, il semble que vous essayez de rechercher un EJB, auquel cas il existe des moyens beaucoup plus faciles d'obtenir une référence EJB (telle que l'injection). –

Répondre

0

En regardant le serveur xml. Je ne vois pas d'entrée JNDI en cours de définition. Basé sur le code, il devrait essayer d'accéder à une entrée JNDI à partir d'une servlet. Dans ce cas, où définissez-vous votre entrée JNDI en premier lieu?

Je pense que vous avez besoin de ce qui suit pour définir l'entrée JNDI dans le serveur xml

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

S'il vous plaît donner un essai

+0

Toutes les ressources JNDI ne doivent pas être enregistrées dans le fichier server.xml en tant qu'éléments ''. Les EJB, les sources de données JDBC et de nombreuses autres ressources peuvent être enregistrés dans JNDI sans configuration dans le fichier server.xml. –

+0

@AndyGuibert Je ne comprends toujours pas votre point.Je lis ce qui a été écrit là, Cependant, je ne pouvais pas obtenir les détails que je cherche –

+0

Je demande quel type d'objet la classe FlightService est. Est-ce un ejb? Est-ce un service web? –