[
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)