Where The Streets Have No Name

웹어플리케이션에 로딩된 class파일 찾기 본문

Developement/Java

웹어플리케이션에 로딩된 class파일 찾기

highheat 2008. 7. 29. 16:10
출처 : http://jace.tistory.com/61

가끔 클래스를 못 찾는다는 에러로 인해 삽질을 유발시키는 경우가 많다.
loader에 의해 로딩된 클래스를 찾을 수 있는 jsp코드를 올려본다.



<%@ page pageEncoding="euc-kr" %><%@ page import="
    java.io.*,
    java.util.*,
    java.text.*
    "%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN"
                      "http://www.w3.org/TR/html401/strict.dtd">

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
    <title>JAR 파일 Checker</title>
</head>

<body>

<table width="100%" border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td valign="top" class="padding_02">

<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td>
            <b>클래스패스 확인</b>
        </td>
    </tr>
</table>

<script type="text/javascript">

 function jsSubmit() {
  if (document.gForm.pkg.value != '') {
   document.gForm.submit();
  }
  else {
   alert('확인하고자 하는 클래스의 전체 패키지명을 입력하세요.');
   document.gForm.pkg.focus();
  }
 }
</script>

<p>

<%
    String pkg = null;
    java.net.URL classUrl = null;

    pkg = request.getParameter("pkg");
    /*--
 if (pkg == null || pkg.trim().length() == 0) {
        pkg = "javax.servlet.http.HttpServlet";
    }
 --*/
%>

<form name='gForm' method='post' onSubmit='return false;'>

※ 확인하고자 하는 클래스의 전체 패키지명을 입력하세요. (ex : javax.servlet.http.HttpServlet)
<table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#E0E0E0">
    <tr>
        <td width=80 class="bbs_view">대상 클래스</td>
        <td class="bg_white">
            <input name='pkg' type='text' size='40'>
            <input type="button" onClick="jsSubmit();" value='찾기' />
        </td>
    </tr>
</table>

</form>

<%
if ( pkg != null ) {
 pkg = pkg.replace('.', '/').trim();
 pkg = "/" + pkg + ".class";
 classUrl = this.getClass().getResource(pkg);
 if (classUrl == null) {
%>
 <p>
 ※ 검색결과
 <table width="100%" border="0" cellspacing="1" cellpadding="8" bgcolor="#E0E0E0">
  <tr>
   <td class="bg_white">
    <B><%= pkg %></B> 를 찾을 수 없습니다.
   </td>
  </tr>
 </table>
<%
 } else {
%>
 <p>
 ※ 검색결과
 <%
 String jarFile = classUrl.getFile();
 int indexNo = jarFile.indexOf("!");
 if (indexNo != -1)
  jarFile = jarFile.substring(0, indexNo);
 %>
 <table width="100%" border="0" cellspacing="1" cellpadding="8" bgcolor="#E0E0E0">
  <tr>
   <td class="bg_white">
    <B><%= pkg %></B>는 <p>
     <B style='color:blue'>
     <%= jarFile %></B> 파일의 <br>
     -> <B style='color:green'><%= pkg %></B>
     에서 로드되었습니다.<p>
   </td>
  </tr>
 </table>
<%
 }
}
%>

        </td>
    </tr>
</table>

</body>
</html>