[ https://issues.apache.org/jira/browse/JUDDI-927?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14352884#comment-14352884 ]
Kelvin Susanto commented on JUDDI-927: -------------------------------------- I have tried to replace it, but it they said entry cannot be resolved to a type. i will copy my stats.jsp code here. maybe you will find something. <%-- Document : index Created on : Feb 23, 2013, 2:05:35 PM Author : Alex O'Ree --%> <%@page import="javax.persistence.EntityTransaction"%> <%@page import="org.uddi.api_v3.BusinessEntity"%> <%@page import="org.apache.juddi.config.Property"%> <%@page import="org.apache.juddi.config.AppConfig"%> <%@page import="javax.persistence.EntityManager"%> <%@page import="org.apache.juddi.config.PersistenceManager"%> <%@page import="org.apache.commons.lang.StringEscapeUtils"%> <%@page import="org.apache.juddi.servlets.RegistryServlet"%> <%@page import="java.util.SortedSet"%> <%@page import="java.util.Properties"%> <%@ page import="java.io.File, java.io.IOException, java.net.URL, java.net.JarURLConnection, java.sql.Connection, java.sql.ResultSet, java.sql.Statement, java.util.Properties, java.util.Iterator, java.util.SortedSet, java.util.TreeSet, javax.naming.Context, javax.naming.InitialContext, javax.sql.DataSource" %> <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@include file="header-top.jsp"%> <%! /** * Look for the named class in the classpath * * @param name of the class to lookup * @return the location of the named class * @throws IOException */ String lookupClass(String className) throws IOException { // load the class (if it exists) Class clazz = null; try { clazz = Class.forName(className); if (clazz == null) { return null; } } catch (ClassNotFoundException e) { return null; } // class was found, now get it's URL URL url = null; try { url = clazz.getProtectionDomain().getCodeSource().getLocation(); if (url == null) { return ""; } } catch (Throwable t) { return ""; } // got the classes URL, now determine it's location String location = getLocation(url); if (location == null) { return ""; } else { return location; } } String lookupResourceWrapper(String resourceName) { String x = lookupResource(resourceName); if (x == null) { x = lookupResource("META-INF/" + resourceName); } if (x == null) { x = lookupResource("/META-INF/" + resourceName); } if (x == null) { x = lookupResource("WEB-INF/" + resourceName); } if (x == null) { x = lookupResource("/WEB-INF/" + resourceName); } if (x == null) { x = lookupResource("/WEB-INF/classes/" + resourceName); } if (x == null) { x = lookupResource("WEB-INF/classes/" + resourceName); } if (x == null) { x = lookupResource("/WEB-INF/classes/META-INF" + resourceName); } if (x == null) { x = lookupResource("WEB-INF/classes/META-INF" + resourceName); } return x; } /** * Look for the named resource or properties file. * * @param resourceName * @return true if the file was found */ String lookupResource(String resourceName) { URL url = null; ClassLoader classLoader = null; classLoader = this.getClass().getClassLoader(); if (classLoader != null) { url = classLoader.getResource(resourceName); if (url != null) { return getLocation(url); } } else { classLoader = System.class.getClassLoader(); if (classLoader != null) { url = classLoader.getResource(resourceName); if (url != null) { return getLocation(url); } } else { //try to the thread context loader } } try { return this.getServletContext().getResource(resourceName).toExternalForm(); } catch (Exception ex) { } return null; } /** * Determine the location of the Java class. * * @param clazz * @return the file path to the jar file or class file where the class was * located. */ String getLocation(URL url) { try { String location = url.toString(); if (location.startsWith("jar:file:/")) { File file = new File(url.getFile()); return file.getPath().substring(6); } else if (location.startsWith("jar")) { url = ((JarURLConnection) url.openConnection()).getJarFileURL(); return url.toString(); } else if (location.startsWith("file")) { File file = new File(url.getFile()); return file.getAbsolutePath(); } else { return url.toString(); } } catch (Throwable t) { return null; } } %> <div class="container"> <!-- Main hero unit for a primary marketing message or call to action --> <div class="well"> <h1><%=ResourceLoader.GetResource(session, "pages.home.stats")%></h1> </div> <!-- Example row of columns --> <div class="row"> <div class="span12"> <script type="text/javascript"> jQuery(document).ready(function($) { $('#myTab').tab(); }); </script> <ul class="nav nav-tabs" id="myTab" data-tabs="tabs"> <li class="active"><a href="#status" data-toggle="tab"><%=ResourceLoader.GetResource(session, "items.status")%></a></li> <li><a href="#stats" data-toggle="tab"><%=ResourceLoader.GetResource(session, "items.statistics")%></a></li> </ul> <div class="tab-content"> <div class="tab-pane active" id="status"> <h3><%=ResourceLoader.GetResource(session, "items.happyjuddi")%></h3> <h4>jUDDI Version Information</h4> <b>jUDDI Version:</b> <%= org.apache.juddi.config.Release.getRegistryVersion()%><br> <b>UDDI Version:</b> <%= org.apache.juddi.config.Release.getUDDIVersion()%><br> <h4>jUDDI Dependencies: Class Files & Libraries</h4> <pre><% //creates the schema if not there // RegistryEngine registry = RegistryServlet.getRegistry(); // registry.init(); String[] classArray = { "org.apache.juddi.servlets.RegistryServlet", "org.apache.juddi.servlets.NotifyServlet", "org.apache.axis.transport.http.AxisServlet", "org.springframework.web.context.ContextLoaderListener", "org.apache.cxf.transport.servlet.CXFServlet", "org.apache.commons.discovery.Resource", "org.apache.commons.logging.Log", "org.apache.log4j.Layout", "javax.xml.soap.SOAPMessage", //not used anymore "javax.xml.rpc.Service", "com.ibm.wsdl.factory.WSDLFactoryImpl", "javax.xml.parsers.SAXParserFactory" }; for (int i = 0; i < classArray.length; i++) { out.write("<b>Looking for</b>: " + classArray[i] + "<br>"); String result = lookupClass(classArray[i]); if (result == null) { out.write("<font color=\"red\">-Not Found</font><br>"); } else if (result.length() == 0) { out.write("<font color=\"blue\">+Found in an unknown location</font><br>"); } else { out.write("<font color=\"green\">+Found in: " + result + "</font><br>"); } } %></pre> <h4>jUDDI Dependencies: Resource & Properties Files</h4> <pre><% String[] resourceArray = { "log4j.properties", "juddiv3.xml", "uddi.xml", "commons-logging.properties", "config.properties", "context.xml", "beans.xml", "persistence.xml" }; for (int i = 0; i < resourceArray.length; i++) { out.write("<b>Looking for</b>: " + resourceArray[i] + "<br>"); String result = lookupResourceWrapper(resourceArray[i]); if (result == null) { out.write("<font color=\"red\">-Not Found</font><br>"); } else if (result.length() == 0) { out.write("<font color=\"blue\">+Found in an unknown location</font><br>"); } else { out.write("<font color=\"green\">+Found in: " + result + "</font><br>"); } } %></pre> <h4>jUDDI DataSource Validation</h4> <pre><% boolean success=false; EntityManager em= PersistenceManager.getEntityManager(); EntityTransaction tx= em.getTransaction(); try { tx.begin(); String rootBusiness = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ROOT_BUSINESS); org.apache.juddi.model.BusinessEntity biz= em.find(org.apache.juddi.model.BusinessEntity.class, rootBusiness); if (biz!=null) success=true; tx.commit(); } catch (Exception ex) { out.print("<font color=\"red\">"); out.print("- Root business lookup failed <i class=\"icon-thumbs-down icon-2x\"> (" + ex.getMessage() + ") "); out.println("</font>"); } finally{ if (tx.isActive()) tx.rollback(); em.close(); } if (success){ out.write("<font color=\"green\">Data source is valid and online! <i class=\"icon-thumbs-up icon-2x\"></i></font><br>"); } %></pre> <h4>System Properties</h4> <pre><% try { --> 304 Properties sysProps = System.getProperties(); 305 SortedSet sortedProperties = new TreeSet(sysProps.keySet()); 306 for (Iterator keys = sortedProperties.iterator(); keys.hasNext();) { 307 String key = (String) keys.next(); 308 out.println("<b>" + key + "</b>: " + sysProps.getProperty(key)); } } catch (Exception e) { e.printStackTrace(); } %></pre> <h4> Platform</h4> <pre><%= getServletConfig().getServletContext().getServerInfo()%></pre> </div> <div class="tab-pane" id="stats"><img src="img/bigrollergreen.gif"></div> </div> <script type="text/javascript"> $.getJSON('mbeans.jsp', function(data) { var items = []; items.push("<table class=\"table table-hover\">"); $.each(data, function(key, val) { items.push('<tr><td>' + key + "</td><td>" + val + '</</td></tr>'); }); items.push("</table>"); $("#stats").html(items.join(' ')); }); </script> </div> </div> <%@include file="header-bottom.jsp"%> > Can not access status and statistic of admin > -------------------------------------------- > > Key: JUDDI-927 > URL: https://issues.apache.org/jira/browse/JUDDI-927 > Project: jUDDI > Issue Type: Test > Components: documentation, juddi-gui, juddi-tomcat > Affects Versions: 3.2 > Environment: Putty VM with Cent OS 6.6 minimal > JDK 1.8.0 > Apache installed > Reporter: Kelvin Susanto > Assignee: Alex O'Ree > Priority: Critical > Fix For: 3.2 > > Original Estimate: 24h > Remaining Estimate: 24h > > I already run apache and tomcat startup, but i still cannot open the status > and statistic in jUDDI administrator site. it keeps showing HTTP Status 500- > here is the exception : > org.apache.jasper.JasperException: Unable to compile class for JSP: > An error occurred at line: 305 in the jsp file: /admin/stats.jsp > The type java.util.Comparator cannot be resolved. It is indirectly referenced > from required .class files > 302: <pre><% > 303: try { > 304: Properties sysProps = System.getProperties(); > 305: SortedSet sortedProperties = new > TreeSet(sysProps.keySet()); > 306: for (Iterator keys = > sortedProperties.iterator(); keys.hasNext();) { > 307: String key = (String) keys.next(); > 308: out.println("<b>" + key + "</b>: " + > sysProps.getProperty(key)); > An error occurred at line: 305 in the jsp file: /admin/stats.jsp > The type Comparator is not generic; it cannot be parameterized with arguments > <? super E> > 302: <pre><% > 303: try { > 304: Properties sysProps = System.getProperties(); > 305: SortedSet sortedProperties = new > TreeSet(sysProps.keySet()); > 306: for (Iterator keys = > sortedProperties.iterator(); keys.hasNext();) { > 307: String key = (String) keys.next(); > 308: out.println("<b>" + key + "</b>: " + > sysProps.getProperty(key)); > Stacktrace: > > org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92) > > org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330) > > org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439) > org.apache.jasper.compiler.Compiler.compile(Compiler.java:349) > org.apache.jasper.compiler.Compiler.compile(Compiler.java:327) > org.apache.jasper.compiler.Compiler.compile(Compiler.java:314) > > org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589) > > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) > javax.servlet.http.HttpServlet.service(HttpServlet.java:717) -- This message was sent by Atlassian JIRA (v6.3.4#6332)