2008년 10월 1일 수요일
[에러와 해결] Eclipse SVN 업데이트 오류
다음과 같은 오류가 발생하면서 업데이트가 되지 않는다.
Attempted to lock an already-locked dir
파일이름의 대소문자를 변경했을 때, SVN이 제대로 인식하지 못하여 발생하는 문제인 것으로 보인다.
파일이름 자체를 변경해서 해결하도록 한다.
간단한 엑셀 다운로드 프로그램(JSP)
최근엔 2007 포맷을 지원하는 POI 3.5 버전이 나오기도 하였다.
그런데 화면에 출력하는 것과 동일한 내용을 POI로 다시 작성하는 것은 매우 귀찮은 일이다.
간단하게 엑셀 다운로드 프로그램을 작성하는 법.
JSP 프로그램에 다음과 같이 Reponse Header 를 설정해주면 된다.
response.setHeader("Content-Disposition","attachment; filename=파일이름.xls");
물론 이렇게 작성된 파일은 엑셀파일 형식은 아니고 웹페이지 형식의 문서이다.
엑셀에서 웹페이지 형식의 문서를 열수 있기 때문에.. 테이블로 잘 작성된 HTML페이지는 엑셀에서도 예쁘게 잘 나온다.
<작성예>
<%@page contentType="text/html;charset=utf-8"%>
<%@page language="java" import="java.util.*"%>
<%
response.setHeader("Content-Disposition","attachment; filename=downloa.xls");
// TODO : 로직
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>계획서</title>
</head>
<body>
<table border=0>
<tr align=center>
<td><font size=4>계획서</font></td>
</tr>
<tr>
<td>
<table>
<tr align='center'>
<td>년월:</td>
<td style="mso-number-format:'\@'">2008.10</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table border=1>
<tr align='center'>
<td>종류</td>
<td>대상</td>
<td>기간</td>
</tr>
<%
for(int i = 0; i < vList.size(); ++i){
%>
<tr>
<td><%=// 값1 %></td>
<td><%=// 값2 %></td>
<td><%=// 값3 %></td>
</tr>
<%
}
%>
</table>
</td>
</tr>
</table>
</body>
</html>
2008년 9월 30일 화요일
[에러와 해결] 데이터 정의에서는 바인드 변수를 사용할 수 없습니다
다음과 같은 오류가 발생하였다.
java.sql.SQLException: ORA-01027: 데이터 정의에서는 바인드 변수를 사용할 수 없습니다
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:966)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3423)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
해당 쿼리는 CREATE TABLE AS SELECT ...
테이블을 생성하는데 PreparedStatement를 사용했기 때문에 발생한 오류이다.
일반 Statement를 사용하여 오류 해결.
2008년 9월 4일 목요일
영문보다 한글이 먼저 나오게 정렬
예) SELECT * FROM tblMember ORDER BY MemberName
한글이 먼저 나오게 하려면?
다음과 같이 한다.
1. oracle
SELECT * FROM tblMember ORDER BY CONVERT(MemberName, 'ISO2022-KR')
2008년 8월 12일 화요일
윈도우 부팅시 톰캣 자동실행시키기
service.bat install
명령창에서 services.msc
또는 제어판의 관리도구 > 서비스를 실행한다.
Apache Tomcat 항목에서 마우스 우클릭하여 속성 선택
시작유형을 자동으로 바꾸고 저장한다.
2008년 4월 26일 토요일
[에러와 해결] 소켓에서 읽을 데이터가 없습니다.
java.sql.SQLException: 소켓에서 읽을 데이터가 없습니다
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1123)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1075)
at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:752)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:362)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:439)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
오라클에서 막고 있는 것이므로,
DB관리자에게 접속할 수 있도록 설정해달라고 요청해서 해결..
2008년 4월 24일 목요일
[에러와 해결] Illegal constant pool type
javax.servlet.ServletException: Illegal constant pool type
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:244)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:510)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
원인 : jsp에서 사용하는 class 파일이 손상되었다.
나의 경우에는 FTP로 업로드할 때 전송타입을 잘못해서 생긴 문제였다.