Где я могу найти сом.корпорация IBM.с WS.лесозаготовки.объект.hpel.WsLogRecord
Один из моих стажеров сегодня пришел ко мне и спросил, где он может найти следующий класс
com.ibm.ws.logging.object.hpel.WsLogRecord
, как правило, что-то вроде findjar.com бы найти его, но в этом случае он не мог. Я закончил с использованием фляги Explorer, чтобы найти его в Было 8 библиотек в следующую локацию, но этот процесс не был эффективным:
{server root}pluginscom.ibm.hpel.logging.jar
Цель этого поста - дать представление о том, где его можно найти, а также спросить, какие лучшие способы найти классы, когда утилиты онлайн не предоставляйте инсайт, который вам нужен.
Спасибо, Джереми
3 ответа:
Мне удалось найти WsLogRecord в разделе com. ibm.ws.logging.object.WsLogRecord (минус hpel). Я использовал eclipse для поиска в com. ibm.ws.logging.object и не смог найти hpel, но нашел WsLogRecord. Я смог просмотреть фактический класс с помощью jd-eclipse. Комментарии в разделе .класс дал расположение файла (C:\IBM\SDP\runtimes\base_v7\plugins\com.ibm.ws.runtime.jar). похоже, я не смог найти его на findjar.com либо и то .банку пришел как IBM из-из-коробки код. Я полагаю, что это не ответ на мой вопрос. как найти его в интернете, но я смог найти его, а затем просмотреть класс с помощью описанных выше шагов.
Что я делаю, чтобы найти его под запущенным экземпляром WebSphere, это развертываю JSP, который использует метод, описанный в статье DeveloperWorks, чтобы найти jar, который предоставил определенный класс.
Для потомков, вот источник , что JSP :
<?xml version="1.0" encoding="ISO-8859-1" ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <title>Servlet Container Class Finder</title> </head> <body> <h2>Servlet Container Class Finder</h2> <p>Enter the fully-qualified name of a Java class (e.g. org.apache.oro.text.regex.Perl5Compiler) in the field below. The servlet will attempt to load the class and, if successful, query the class' <em>java.security.CodeSource</em> for the location of the class using the following methods: <pre> Class.forName(className).getProtectionDomain().getCodeSource() </pre> </p> <p> <% String className = request.getParameter("className"); String prefill = ""; if (className != null) { prefill = className; if (className.trim().length() != 0) { try { java.security.ProtectionDomain pd = Class.forName(className).getProtectionDomain(); if (pd != null) { java.security.CodeSource cs = pd.getCodeSource(); if (cs != null) { out.println(cs); } else { out.println("No CodeSource found"); } } else { out.println("No ProtectionDomain found"); } } catch (Throwable t) { out.println(t); } } } %> </p> <form method="post" action="<%= request.getRequestURI()%>"> <p> Class Name: <input type="text" name="className" value="<%= prefill %>" size="40"/> <input type="submit" value="Submit"/> </p> </form> <p> Code taken from <a href="http://www.ibm.com/developerworks/websphere/techjournal/0406_brown/0406_brown.html"> this DeveloperWorks article</a>. </p> </body> </html>
Если все остальное не удается, и я не могу найти класс с помощью Eclipse Quick Type Hierarchy, которая показывает, в каком jar живет класс, я бы использовал сценарий оболочки в следующих строках:
for f in `find /path/to/websphere/lib -name "*.jar"` do FOUND=`jar tvf $f | grep WsLogRecord` if [[ -n $FOUND ]] then echo "Found in $f:" echo $FOUND fi done