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*/
}
Pouvez-vous expliquer davantage? Avez-vous quand enregistrer la page de description du service html? –
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. –