2017-05-19 6 views
0

peut-on remplacer Apache CXF généré page HTMLpeut-on remplacer Apache CXF généré page HTML

j'ai essayé

<init-param>   
     <param-name>hide-service-list-page</param-name> 
     <param-value>true</param-value>   
    </init-param> 

mais il montre « Aucun service n'a été trouvé » au lieu de montrer ce comment pouvons-nous montrer différents page html. Merci

+0

Pouvez-vous expliquer davantage? Avez-vous quand enregistrer la page de description du service html? –

+0

Par exemple, l'URL est http: // localhost: 8080/UserDetails listera tous les "Services SOAP disponibles:" et "Services RESTful disponibles:" donc, au lieu de cette liste, je souhaite afficher d'autres messages. –

Répondre

1

Apache cxf utiliser une classe appelée FormattedServiceListWriter pour générer la page html dont vous parlez, vous pouvez jeter un oeil sur le code here. Ce que vous pouvez faire pour personnaliser cette page est de créer une classe dans votre projet avec exactement le même nom dans le même paquet org.apache.cxf.transport.servlet.servicelist (vous devez également créer ce paquet dans votre projet), et changer la méthode writeServiceList pour votre propre mise en œuvre, cette classe aura la priorité sur celui dans le pot CxF

nouvelle FormattedServiceListWriter classe

package org.apache.cxf.transport.servlet.servicelist; 

    /*--imports--*/ 

    public class FormattedServiceListWriter implements ServiceListWriter { 

     /*... this remains the same as in the original class*/ 

     public void writeServiceList(PrintWriter writer, 
            String basePath, 
            AbstractDestination[] soapDestinations, 
            AbstractDestination[] restDestinations) throws IOException { 

      /*this is the method you should change*/ 

      writer.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" " 
         + "\"http://www.w3.org/TR/html4/loose.dtd\">"); 
      writer.write("<HTML><HEAD>"); 
      writer.write("<LINK type=\"text/css\" rel=\"stylesheet\" href=\"" + styleSheetPath + "\">"); 
      writer.write("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">"); 
      if (title != null) { 
       writer.write("<title>" + title + "</title>"); 
      } else { 
       writer.write("<title>CXF - Service list</title>"); 
      } 
      writer.write("</head><body>"); 


      writer.write("<span class=\"heading\">WHATEVER YOU WANT TO PUT HERE</span>"); 

      writer.write("</body></html>"); 
     } 

     /*... this remains the same as in the original class*/ 

    }