'분류 전체보기'에 해당되는 글 243건
- 2017.09.04 :: 하나은행 신사옥 입주 떡 (외부용)
- 2017.09.02 :: 하나은행 신사옥 오픈? 행사 떡
- 2015.03.21 :: [MySQL] 무한정 늘어나는 log-bin 파일 줄이기
- 2014.02.05 :: postgresql 컬럼 조회, 컬럼 코멘트 조회
- 2014.02.03 :: Request Payload 어쩌구 하는 400 에러.
- 2014.01.25 :: mysql 원격접속.
- 2014.01.25 :: 리눅스 설정.
- 2013.10.27 :: STS(Spring Tool Suite) 다운로드(2013년 10월 27일 기준)
- 2013.09.25 :: spring @Scheduled 중복 수행
- 2013.08.21 :: java zip 분할 압축
- 2013.05.20 :: 정보처리기사 - 2013년 03월 10일 필기 기출문제 부분정리
- 2013.05.20 :: Spring 3.1 TestCase (MockServletContext 사용)
- 2013.05.15 :: org.apache.poi.EncryptedDocumentException: Default password is invalid for docId/saltData/saltHash
- 2013.05.15 :: Error querying database. Cause: java.lang.NumberFormatException
- 2013.05.13 :: Could not get RequestDispatcher for jsp
- 2013.05.12 :: 안드로이드(android) 다운로드(5월 12일 기준)
- 2013.05.10 :: STS tc server port 변경(8080 -> 80)
- 2013.05.10 :: STS @RequestMapping 사용하여 접근 URL 생성하기
- 2013.05.10 :: STS Editor 창에서 라인번호 보기
- 2013.05.10 :: STS Context Root 변경하기.
- 2013.05.10 :: STS 에서 스프링 MVC 프로젝트 생성.
- 2013.05.10 :: STS 시작화면 과 Dashboard, Plug-in 설치관련화면
- 2013.05.08 :: STS(Spring Tool Suite) 다운로드(2013년 5월 8일 기준)
- 2013.04.30 :: java.sql.SQLException: Already closed.
- 2013.04.20 :: cafe24 log4j 설정방법.
- 2013.04.07 :: 엑셀의 셀(Cell)번호를 java poi 형태로 변환............
- 2013.04.07 :: POI 엑셀 사용자 정의 서식 날짜일경우
- 2012.08.02 :: SVN Log 출력.
- 2011.09.01 :: YUI COMPRESSOR를 이용한 js 및 css 파일 COMPRESS with editplus
- 2011.08.25 :: Internet Explorer Developer Toolbar
purge master logs before date_sub(current_date, interval 30 day);
원본은 -> http://theeye.pe.kr/archives/972
MySQL에서 사용하는 log-bin이라는 옵션은 사용된 쿼리들이 로깅되는 파일이며 Innodb 혹은 Replication등에서 사용되곤 합니다.
하지만 이 파일의 문제는 무한정 늘어난다는 것입니다. relay-log-space-limit 같은 옵션이 있지만 이 옵션은 Replication에서 사용되는 relay-log-bin의 용량을 제한 하는 옵션이지 해결책이 되지 못합니다.
하지만 이 파일을 정리하는 방법이 있습니다. 우선 다음의 Query를 사용하는 것입니다.
INTERVAL에서는 원하시는 로깅 시점을 기록하시면 됩니다. 위의 경우에는 30일 이전의 로깅 정보를 삭제하게 됩니다.
차례차례 해보도록 하겠습니다.
1. 현재의 하드디스크 용량 상태를 확인합니다.
데이터베이스 공간이 85%나 사용되어 곧 꽉찰지도 모른다는 불안감에 휩싸이게 되었습니다.
2. log-bin 파일을 확인해 봅시다.
파일이 엄청나게 많이 있습니다.
3. 다음 명령어를 수행합니다.
물론 mysql에 접속하셔서 위의 명령어를 입력하셔도 됩니다. Super권한을 가진 root계정으로 실행해 주세요.
4. log-bin 파일이 줄었나 확인해 봅시다.
41번 이전의 파일들이 모두 삭제 되었습니다. 41번 부터가 최근 30일 이내의 로그정보가 남아있는 모양이군요.
5. 하드디스크 용량 상태를 확인해 봅시다.
확실히 용량이 많이 확보가 되었군요^^
주기적인 실행이 필요하실 경우에는 위의 명령어를 crontab에 등록하시면 됩니다. 일주일에 한번정도의 실행이 적당하겠네요.
--컬럼 코멘트 조회
select c.relname, a.attrelid as "tableoid",
a.attname as "colname",
a.attnum as "columnoid",
(SELECT col_description(a.attrelid, a.attnum)) AS COMMENT
from
pg_catalog.pg_class c
inner join pg_catalog.pg_attribute a on a.attrelid = c.oid
where
c.relname = '테이블명'
and a.attnum > 0
and a.attisdropped is false
and pg_catalog.pg_table_is_visible(c.oid)
order by a.attrelid, a.attnum
--컬럼 조회
select table_name, column_name, data_type, character_maximum_length , character_octet_length , udt_name
from information_schema.columns where table_name='테이블명'
order by ordinal_position
--테이블 코멘트 조회
SELECT n.nspname, c.relname, obj_description(c.oid)
FROM pg_catalog.pg_class c inner join pg_catalog.pg_namespace n on c.relnamespace=n.oid
WHERE c.relkind = 'r'
and nspname = 'public'
and relname = '테이블명'
파라메터가 잘못 줘서 나는 에러
코딩상의 오류입니다.
Request URL:http://url/xxx.do
Request Method:POST
Status Code:400 Bad Request
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:27588
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryHijdHxwYE8qmZTKm
Cookie:JSESSIONID=21899B40DA3E85957381B
Host:cs.test.faz.kr
Origin:http://url/xxx.do
Referer:http://url/xxx.do
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36
Request Payload
------WebKitFormBoundaryHijdHxwYE8qmZTKm
Content-Disposition: form-data; name
------WebKitFormBoundaryHijdHxwYE8qmZTKm
Content-Disposition: form-data; name="i"/option>
<option value=
------WebKitFormBoundaryHijdHxwYE8qmZTKm
Content-Disposition: form-data; name="excelfile"; filename="140"
Content-Type: application/vnd.ms-excel
------WebKitFormBoundaryHijdHxwYE8qmZTKm--
Response Headersview source
Connection:close
Content-Length:968
Content-Type:text/html;charset=utf-8
Date:Mon, 03 Feb 2014 01:54:14 GMT
Server:Apache
일반 사용자 목록(useradd 명령어로 생성되는 일반 사용자 계정은 UID가 500 이상이다.)
awk -F':' '{if($3>=500)print $1}' /etc/passwd
리눅스 사용자 패스워드 변경
$passwd 사용자계정 [Enter]
Changing password for user 사용자계정.
New password: 새로운 패스워드 입력 [Enter]
Retype new password: 똑같이 다시 입력 [Enter]
passwd: all authentication tokens updated successfully.
[Linux] SSH root접근 제한
$ vi /etc/ssh/sshd_config
# Authentication:
#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
--ssh 데몬 restart
# /etc/init.d/sshd restart
http://spring.io 접속 후 제일 하단에 TOOLS 클릭.
See all versions 클릭
각기 맞는 버젼 선택( Windows , Mac , Linux)
zip 방식으로 선택.
다운로드 한것은 C:\ (c드라이브 루트에 복사)
cafe24 jsp 호스팅 받고 있다.
spring @Scheduled 중복 수행...
많이 찾아봤다...
톰캣 스타트 하면....
[ INFO] [2013-09-25 00:06:49,249][main] AbstractApplicationContext.java.prepareRefresh()-[495 Line] Refreshing WebApplicationContext for namespace 'appServlet-servlet': startup date [Wed Sep 25 00:06:49 KST 2013]; parent: Root WebApplicationContext
이렇게 두번 올라간다.(안올라가면 좋은건지 나쁜건지...모르겟다.
문제는 @Scheduled 이 두번 실행된다.
아주 약간의 시간차를 두고....
인터넷 찾아봐도 없다.
그래서....
우회?적인 방법으로 처리함.
DB 처리 방식.
CREATE TABLE `TBCRON01` (
`CLASSIFICATION` varchar(50) NOT NULL COMMENT '크론작업구분',
`JOBDATE` varchar(20) NOT NULL COMMENT '작업등록시간',
PRIMARY KEY (`CLASSIFICATION`,`JOBDATE`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
@Resource(name="sqlSession")
private SqlSession session;
HashMap<String, String> mp = new HashMap<String, String>();
mp.put("classification", "DatabaseBackupExecutor");
mp.put("jobdate", CommonUtil.getDateFormat("yyyy_MM_dd_HH_mm"));
session.update("SqlCronMapper.cronInsert", mp);
꼼수긴 해도...어쩔 도리가 없다....
하나의 파일로 압축하는건 많은데
파일들을 분할 압축하는거는 없다.
zip4j 오랫동안 찾다가 이제 찾음
소스 정말 심플함.
/*
* Copyright 2010 Srikanth Reddy Lingala
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.lingala.zip4j.examples.zip;
import java.io.File;
import java.util.ArrayList;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;
/**
* Demonstrated how to create a split zip file
*
* @author Srikanth Reddy Lingala
*
*/
public class CreateSplitZipFile {
public CreateSplitZipFile() {
try {
// Initiate ZipFile object with the path/name of the zip file.
ZipFile zipFile = new ZipFile("c:\\ZipTest\\CreateSplitZipFile.zip");
// Build the list of files to be added in the array list
// Objects of type File have to be added to the ArrayList
ArrayList filesToAdd = new ArrayList();//압출할 파일 대상들.
filesToAdd.add(new File("c:\\ZipTest\\sample.txt"));
filesToAdd.add(new File("c:\\ZipTest\\myvideo.avi"));
filesToAdd.add(new File("c:\\ZipTest\\mysong.mp3"));
// Initiate Zip Parameters which define various properties such
// as compression method, etc.
ZipParameters parameters = new ZipParameters();
// set compression method to store compression
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
// Set the compression level. This value has to be in between 0 to 9
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
// Create a split file by setting splitArchive parameter to true
// and specifying the splitLength. SplitLenth has to be greater than
// 65536 bytes
// Please note: If the zip file already exists, then this method throws an
// exception
zipFile.createZipFile(filesToAdd, parameters, true, 10485760);//파일 사이즈 byte단위
} catch (ZipException e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
new CreateSplitZipFile();
}
}
1. SQL에서 DELETE 명령에 대한 설명으로 옳지 않은 것은?
가. 테이블의 행을 삭제할 때 사용한다.
나. WHERE 조건절이 없는 DELETE 명령을 수행하면 DROP TABLE 명령을 수행했을 때와 같은 효과를 얻을 수 있다.
(DROP TABLE 명령어는 테이블을 삭제하는 명령어이다.)
다. SQL을 사용 용도에 따라 분류할 경우 DML에 해당한다.
라. 기본 사용 형식은 "DELETE FROM 테이블 [WHERE 조건];“이다.
2. 트랜잭션의 특성을 모두 나열 (ACID)
1) Atomicity (원자성)
트랜잭션은 분리할 수 없는 하나의 단위이다.
작업이 모두 수행되거나 하나도 수행되지 않아야 한다.
2) Consistency (일관성)
트랜잭션에서 사용되는 모든 데이터는 일관되어야 한다.
이 일관성은 추후 설명할 '잠금'과 관련이 있다.
3) Isolation (격리성)
현재 트랜잭션이 접근하고 있는 데이터는 다른 트랜잭션으로부터 격리되어야 한다는 것을 의미한다.
트랜잭션이 발생하기 이전 상태나 완료된 이후 상태를 볼 수는 있지만,
트랜잭션이 진행중인 중간 데이터를 볼 수 없다.
(물론 이를 피해가는 방법도 있다)
4) Durability (영속성)
트랜잭션이 정상적으로 종료되면, 그 결과는 시스템 오류가 발생하더라도 시스템에 영구적으로 적용되어야 한다.
svn 다운로드 주소 : https://faz.googlecode.com/svn/trunk/springtestcase3.1
좀 틀린부분도 있습니다. 너그러이 용서를....
package kr.faz.testcase;
import javax.inject.Inject;
import kr.faz.util.StringUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.mock.web.MockServletContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:kr/faz/test-servlet-context.xml" )
@Transactional
public class MockControllerTest {
@Inject
private RequestMappingHandlerAdapter handlerAdapter;
@Inject
private RequestMappingHandlerMapping handlerMapping;
MockHttpServletRequest request ;
MockHttpServletResponse response;
@Before
public void setUp() {
request = new MockHttpServletRequest();
response = new MockHttpServletResponse();
}
@Test //주문서로 이관
public void urlTest() throws Exception {
setRequest("/test.do?companycode=2&infolidx=2&filelidx=2&orderdate=20130413", "POST");
}
public void setRequest(String uri, String method) throws Exception {
int questionIndex = uri.indexOf("?");
String url = null;
String param = null;
if ( questionIndex != -1 ){
url = uri.substring(0, questionIndex);
param = uri.substring(questionIndex+1);
} else {
url = uri;
}
request.setRequestURI(url);
if ( StringUtils.isNotEmpty(param)) {
String params[] = param.split("&");
for ( String value : params) {
//파라미터 값이 있으면 셋팅
String[] v = value.split("=");
if ( v.length == 2) {
request.addParameter(v[0], v[1]);
}
}
}
System.out.println("URI : "+ request.getRequestURI());
System.out.println("URL : "+ request.getRequestURL());
System.out.println("QueryString : "+ request.getQueryString());
request.setMethod(method);
Object handler = handlerMapping.getHandler(request).getHandler();
handlerAdapter.handle(request, response, handler);
System.out.println("response data : "+ response.getContentAsString());
request.close();
}
}
org.apache.poi.EncryptedDocumentException: Default password is invalid for docId/saltData/saltHash
at org.apache.poi.hssf.record.RecordFactoryInputStream$StreamEncryptionInfo.createDecryptingStream(RecordFactoryInputStream.java:116)
at org.apache.poi.hssf.record.RecordFactoryInputStream.<init>(RecordFactoryInputStream.java:184)
at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:440)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:280)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:243)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:187)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:169)
at kr.faz.excelupload.controller.ExceluploadController.parsingTypeByExclude(ExceluploadController.java:496)
at kr.faz.excelupload.controller.ExceluploadController.adminExceluploadInsertFormAction(ExceluploadController.java:115)
at kr.faz.excelupload.controller.ExceluploadController$$FastClassByCGLIB$$7002440e.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
at kr.faz.aop.SessionCheck.adminSessionCheck(SessionCheck.java:57)
at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)
at kr.faz.excelupload.controller.ExceluploadController$$EnhancerByCGLIB$$ee8dc86a.adminExceluploadInsertFormAction(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.Socket.invoke(Socket.java:776)
at org.apache.jk.common.Socket.processConnection(Socket.java:705)
at org.apache.jk.common.Socket$SocketConnection.runIt(Socket.java:898)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:619)
Mybatis 에서 나는 오류
<if test="section != null && section != '' && section != 'X' " >
->
<if test='section != null && section != "" && section != "X" ' >
변경하면 된다.
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.NumberFormatException: For input string: "X"
### Cause: java.lang.NumberFormatException: For input string: "X"
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:364)
at $Proxy12.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:194)
at kr.faz.goodsinout.dao.impl.GoodsinoutDaoImpl.list(GoodsinoutDaoImpl.java:26)
at kr.faz.goodsinout.service.impl.GoodsinoutServiceImpl.list(GoodsinoutServiceImpl.java:26)
at kr.faz.goodsinout.controller.GoodsinoutController.adminGoodsinoutList(GoodsinoutController.java:70)
at kr.faz.goodsinout.controller.GoodsinoutController$$FastClassByCGLIB$$b9c3d7bc.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
at kr.faz.aop.SessionCheck.adminSessionCheck(SessionCheck.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)
at kr.faz.goodsinout.controller.GoodsinoutController$$EnhancerByCGLIB$$a5f0006b.adminGoodsinoutList(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.NumberFormatException: For input string: "X"
### Cause: java.lang.NumberFormatException: For input string: "X"
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:107)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:98)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:354)
... 55 more
Caused by: java.lang.NumberFormatException: For input string: "X"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
at java.lang.Double.parseDouble(Double.java:510)
at org.apache.ibatis.ognl.OgnlOps.doubleValue(OgnlOps.java:259)
at org.apache.ibatis.ognl.OgnlOps.compareWithConversion(OgnlOps.java:143)
at org.apache.ibatis.ognl.OgnlOps.isEqual(OgnlOps.java:186)
at org.apache.ibatis.ognl.OgnlOps.equal(OgnlOps.java:578)
at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:51)
at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:210)
at org.apache.ibatis.ognl.ASTAnd.getValueBody(ASTAnd.java:56)
at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:210)
at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:333)
at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:413)
at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:395)
at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:45)
at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:29)
at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:30)
at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:29)
at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:31)
at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:29)
at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:47)
at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:29)
at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:37)
at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:265)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:79)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:104)
... 61 more
ERROR: org.springframework.web.servlet.tags.form.HiddenInputTag - Neither BindingResult nor plain target object for bean name 'm' available as request attribute
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'm' available as request attribute
at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:178)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:198)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:164)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:151)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:142)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:126)
at org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:421)
at org.springframework.web.servlet.tags.form.HiddenInputTag.writeTagContent(HiddenInputTag.java:77)
at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79)
at org.apache.jsp.WEB_002dINF.views.admin.goodsinout.goodsinoutList_jsp._jspx_meth_form_005fhidden_005f0(goodsinoutList_jsp.java:313)
at org.apache.jsp.WEB_002dINF.views.admin.goodsinout.goodsinoutList_jsp._jspService(goodsinoutList_jsp.java:212)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
at java.lang.Thread.run(Thread.java:619)
jsp파일이 인식이 안된다.
tomcat/conf 의 web.xml 이 존재하는지 먼저 살펴봐야 한다.
없으면 복시해 넣는다.
ype Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Could not get RequestDispatcher for [/WEB-INF/views/login.jsp]: Check that the corresponding file exists within your web application archive! org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:219) org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262) org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.
Daum 에서 안드로이드를 검색하면
바로가기 안드로드가 있습니다.
클릭
페이지 하단에
Developers 라고 있습니다( 스패너 모양 클릭)
하단에 Get the SDK 버튼 클릭.
우측부분에 Download the SDK ADT Bundle for Windows 를 클릭합니다.
어느순간 라이센스 부분이 나오네요.............
자신의 OS 에 맞는 bit 체크하고 다운로드 하시면 됩니다..
좌측 Package Exploer에서
Servers > VMware vFabric tc Server ~ > catalina.properties 파일을 열면
제일 밑부분의 바로 윗줄에 bio.http.port=8080 이라고 되어 있다
이 8080을 80으로 변경한다.
bio.http.port 를 변경하는 이유는
아래 화면에서 Servers > VMware vFabric tc Server Developer Edition v2.8을 더블 클릭하면
아래 화면같이 나온다
우측 하단부분에 Ports 부분에 보면
HTTP/1.1 에서 ${bio.http.port} 라고 되어 있다
이 부분에서 설정값을 적용되어 진다.
변경하고 was를 구동한다.
구동후에 아래와 같이 http://localhost/home2 로 접근한다.
Spring 에서 Url 매핑 방법이다.
아래 붉은색 박스처럼 java 파일에 소스를 추가한다.(추가 후 저장한다.)
@RequestMapping(value = "/home2", method = RequestMethod.GET)
public String home2(Locale locale, Model model) {
model.addAttribute("msg", "home2");
return "home2";
}
좌측 붉은색 네모안의 파일은 바로 위쪽의 home.jsp 파일을 복사해서 붙인것이다.
리그로 우측 에디터 창의 붉은색 라인은 한줄 복사한것이다.
저장하고 Was 를 다시 구동한다.
정상적으로 구동이 되었다면
http://localhost:8080/home2 로 접속한다.
접속하면 아래와 같이 나온다.
혹시 되지 않는다면 WAS 를 중지한다.
Servers 에서 Add and Remove 메뉴를 클릭한다.
kr 프로젝트를 Remove 하고 Finish 를 한다.
Servers 에서 Clean... 메뉴를 클릭한다.
Servers 에서 Add and Remove...를 선택 후
kr 프로젝트를 Add 한다음 Was 를 구동하면 정상적으로 진행된다.
에디터 창은 기본적으로 Line 번호가 나오지 않는다.
붉은색 색 칠한 부분에서 오른쪽 마우스를 클릭해야 한다.
클릭하면 팝업메뉴가 생성되고
메뉴에서 Show Line Numbers 를 클릭한다.
메뉴 클릭 후 아래와 같이 Line 번호가 보인다.
아래의 붉은색의 버튼을 클릭하여 WAS 가동을 중지한다.
프로젝트에서 오른쪽 마우스를 클릭하고 제일밑의 Properties 메뉴를 클릭한다.
Properties 등록정보 창이 생성되면
좌측의 메뉴에서 Web Project Settings 메뉴를 클릭하면
우측부분에 Context root 라고 나오면서 first 라고 되어 있다.
first 대신에 / (root) 라고 입력한다.
Context Root 로 변경할건지 묻는다.
OK 버튼을 클릭한다.
Context Root 가 변경되고 나면
OK 버튼을 클릭한다.
그리고 다시 WAS 를 구동한다.
아래와 같이 나온다.....-_-;; 순간적으로 놀랐다.
그전에는 이런 화면이 나오지 않았는데
그리고 http 404 가 나오지 않으면 성공이다.
메뉴에서 File > New > Spring Template Project 메뉴를 클릭한다.
Template Project 에서 제일 밑의 Spring MVC Project 를 선택 후 Next 버튼을 클릭한다.
Next 를 클릭했을때 16608bytes 를 다운로드 한다고 할려고 한다.에서 Yes 버튼을 클릭한다.
Project Name에서 관리할 Project이름을 적는다.
두번재 칸에는 패키지 구조를 입력한다.
예시로 Project Name 에 kr 이라고 입력한다.
두번째 칸에는 kr.u2m.first 라고 입력한다.(. 이 두개 이상 들어가야 한다.)
아래와 같이 생성되며 붉은색 박스에서 보는것처럼 붉은색 X 가 보인다.(시간이 지나면 X표시는 없어진다.)
Maven 레포지토리에서 파일 다운로드 중이다.
아래와 같이 X표시가 없어졌다.
좌측 하단에 Servers 탭?에서 오른쪽 마우스를 클릭하면 Add and Remove... 이라는 메뉴를 클릭한다.
창이 하나 뜨면서 Available 에 kr 이 있고 우측에 아무것도 없다
kr을 선택하고 Add 버튼을 클릭한다.
Add 를 클릭하면 우측으로 kr 패키지가 넘어간다.
넘어간후에는 Finish 버튼을 클릭한다.
좌측하단 Servers에 kr 프로젝트가 들어가 있는 모습이 보이며
동그라미에 삼각형 모양이 있는 버튼을 클릭한다.
WAS 시작버튼이다.
시작버튼 클릭하고 나면 붉은색 박스처럼 Console 창에 로그가 올라간다.
제일 마지막 부분에 정보 : Server startup in 4272 ms 라고 나오는데
숫자는 가변적이다.
Console 창 윗부분에서 Exception 이 발생했는지 확인한다.
브라우저에서
http://localhost:8080/first/ 라고 입력하자.
그러면 아래와 같이 나온다.
first 라고 되어 있는 부분이 context name 이라고 한다. 해당하는 이름을 변경하는것도 좋겠다.
STS 를 압축해제하면 아래와 같이 나온다.(sts-3.2.0버젼 기준입니다.)
sts-3.2.0.RELEASE 폴더로 들어간다.
폴더에 들어가면 STS.exe 가 있다. 실행한다.
STS 시작시 workspace가 필요하다.가급적 C드라이브의 Root 밑에 폴더 생성 후 실행한다.
실행후 로딩이 되면 아래의 첫 화면 Welcome 화면이 나온다.
Open Dashboard 메뉴는 스프링의 소식이나 추가적인 정보가 표시된다.
Install Extension 은 스프링의 플러그인을 설치할 수 있다.
New and Noteworthly 은 스프링의 새로운 주목할만한;; 정보가 나온다.
Dashboard 를 클릭했을때 화면이다.
Install Extension 화면을 클릭했을때 나오는 화면이다.
Daum 에서 springsource를 검색한다.
바로가기 사이트를 클릭한다.
Spring Source 사이트에 접속하면 Get Started 에서
Get Tool Kit(STS)를 클릭한다.
페이지를 이동하면 DOWNLOAD 버튼이 있다. 버튼을 클릭한다.
아래에는 정보를 입력하지 말고 take me to the download page Link 를 클릭한다.
아래 링크와 나와 있는것 처럼 해당하는 버젼을 다운받으면 된다.
가급적 install 버젼보다는 무설치 버전을 다운로드 한다.
다운로드 할때는 디스크 드라이브의 Root에 저장한다. (다른폴더 밑에서 압축 해제 오류가 발생한다.)
압축 해제하면 아래와 같이 된다.
STS.exe 를 실행한다.
error: java.sql.SQLException: Already closed. oracle
상황 : 이상없이 잘 사용하던 커넥션이 한번씩 끊긴다. 이후 재사용시에는 무리없는 활동을 보여준다.
이유 : 데이터베이스 입장에서 오랫동안 휴면되는 커넥션은 불필요하다고 판단하고, 끊어버린다. 때문에 커넥션풀 설정시 연결 확인용 쿼리를 지정해주어야 한다.
<property name="driverClassName" value="${db.driverName}"></property>
<property name="url" value="${db.url}"></property>
<property name="username" value="${db.username}"></property>
<property name="password" value="${db.password}"></property>
<property name="initialSize" value="${db.initialSize}"></property>
<property name="maxActive" value="${db.maxActive}"></property>
<property name="validationQuery" value="select 1 from dual" /> <—Oracle
<property name="validationQuery" value="select 1" /> <-- MySql -->
DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Could not close JDBC Connection
java.sql.SQLException: Already closed.
at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:114)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:191)
at org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:333)
at org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection(DataSourceUtils.java:294)
at org.mybatis.spring.transaction.SpringManagedTransaction.close(SpringManagedTransaction.java:122)
at org.apache.ibatis.executor.BaseExecutor.close(BaseExecutor.java:78)
at org.apache.ibatis.executor.CachingExecutor.close(CachingExecutor.java:65)
at org.apache.ibatis.session.defaults.DefaultSqlSession.close(DefaultSqlSession.java:206)
at org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:172)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:371)
at $Proxy15.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:194)
at kr.faz.ordersheet.dao.impl.OrdersheetDaoImpl.list(OrdersheetDaoImpl.java:26)
at kr.faz.ordersheet.service.impl.OrdersheetServiceImpl.list(OrdersheetServiceImpl.java:27)
at kr.faz.ordersheet.controller.OrdersheetController.checkData(OrdersheetController.java:110)
at kr.faz.ordersheet.controller.OrdersheetController.adminOrdersheetList(OrdersheetController.java:74)
at kr.faz.ordersheet.controller.OrdersheetController$$FastClassByCGLIB$$86da2af8.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
at kr.faz.aop.SessionCheck.adminSessionCheck(SessionCheck.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)
at kr.faz.ordersheet.controller.OrdersheetController$$EnhancerByCGLIB$$8d2c0c1.adminOrdersheetList(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
at java.lang.Thread.run(Thread.java:619)
org.springframework.dao.DataAccessResourceFailureException:
### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
### The error may exist in file [P:\WSC\sts\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\cs\WEB-INF\classes\mybatis\xml\ordersheet.xml]
### The error may involve SqlOrdersheetMapper.ordersheetList
### The error occurred while executing a query
### SQL: SELECT ************** LIMIT ? , ?
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
; SQL []; No operations allowed after connection closed.; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:91)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:71)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:364)
at $Proxy15.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:194)
at kr.faz.ordersheet.dao.impl.OrdersheetDaoImpl.list(OrdersheetDaoImpl.java:26)
at kr.faz.ordersheet.service.impl.OrdersheetServiceImpl.list(OrdersheetServiceImpl.java:27)
at kr.faz.ordersheet.controller.OrdersheetController.checkData(OrdersheetController.java:110)
at kr.faz.ordersheet.controller.OrdersheetController.adminOrdersheetList(OrdersheetController.java:74)
at kr.faz.ordersheet.controller.OrdersheetController$$FastClassByCGLIB$$86da2af8.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
at kr.faz.aop.SessionCheck.adminSessionCheck(SessionCheck.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)
at kr.faz.ordersheet.controller.OrdersheetController$$EnhancerByCGLIB$$8d2c0c1.adminOrdersheetList(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
at java.lang.Thread.run(Thread.java:619)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1304)
at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1296)
at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4511)
at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4476)
at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:281)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:313)
at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.ibatis.logging.jdbc.ConnectionLogger.invoke(ConnectionLogger.java:52)
at $Proxy16.prepareStatement(Unknown Source)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.instantiateStatement(PreparedStatementHandler.java:72)
at org.apache.ibatis.executor.statement.BaseStatementHandler.prepare(BaseStatementHandler.java:82)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.prepare(RoutingStatementHandler.java:54)
at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:70)
at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:56)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:259)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:132)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:105)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:81)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:104)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:98)
at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:354)
... 56 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 101,739 milliseconds ago. The last packet sent successfully to the server was 101,739 milliseconds ago.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3871)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2484)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2809)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2758)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1612)
at com.mysql.jdbc.DatabaseMetaData.getUserName(DatabaseMetaData.java:6791)
at org.apache.commons.dbcp.DelegatingConnection.toString(DelegatingConnection.java:123)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.toString(PoolingDataSource.java:355)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:115)
at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:85)
at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:66)
at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:271)
at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:69)
... 67 more
Caused by: java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3852)
... 81 more
cafe24는 크론탭을 지원해주지 않는다.
해당 방법이 많다고는 하지만 실질적으로 안된다.
log4j.rootLogger = DEBUG, stdout, rolling
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold =INFO
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%5p] [%d][%t] %F.%M()-[%L Line] %m%n
log4j.appender.dailyfile.Threshold = DEBUG
log4j.appender.dailyfile = org.apache.log4j.DailyRollingFileAppender
# 로그가 쌓일 위치 적는다.
log4j.appender.rolling.File = /home/hosting_users/cafe24 계정/www/WEB-INF/logs/logfile.log
log4j.appender.dailyfile.layout = org.apache.log4j.PatternLayout
log4j.appender.dailyfile.layout.ConversionPattern=[%5p] [%d][%t] %F.%M()-[%L Line] %m%n
log4j.appender.rolling = org.apache.log4j.DailyRollingFileAppender
# 로그가 쌓일 위치 적는다.
log4j.appender.rolling.File = /home/hosting_users/cafe24 계정/www/WEB-INF/logs/logfile.log
log4j.appender.rolling.Append = true
log4j.appender.rolling.DatePattern = '.'yyyy-MM-dd
log4j.appender.rolling.layout = org.apache.log4j.PatternLayout
log4j.appender.rolling.layout.ConversionPattern=[%5p] [%d][%t] %F.%M()-[%L Line] %m%n
log4j.logger.org.mybatis=DEBUG
log4j.logger.org.apache=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.scan하는패키지=DEBUG
CellReference.convertNumToColString 숫자를 엑셀의 숫자 Label 로 표기
CellReference.convertColStringToIndex 엑셀의 Cell Label 을 숫자로 표기. 일종의 Cell 번호.
https://poi.apache.org/apidocs/org/apache/poi/ss/util/CellReference.html
/**
* 엑셀에서 열 이름을 POI 에 맞도록 int 형으로 변환한다. ex) A -> 0, AA -> 26, AB -> 27
* @param cellNo
* @return
*/
public static int convertCellNameToInt(String cellNo){
int rvalue = 0;
char[] c = cellNo.toCharArray();
if ( c.length > 1 ) {
rvalue += (int)c[0]+26-65;
rvalue += (int)c[1]-65;
return rvalue;
} else {
rvalue = ((int)c[0])-65;
}
return rvalue;
}
엑셀의 사용자 정의 서식이 들어가 있는 날짜일경우
POI 관련자료를 찾아봤다...............
if( HSSFDateUtil.isCellDateFormatted(cell)) 이걸 사용하라고 하는데 -_-;;
안되는건지 되는건지...
일부 서식에서는 안된다.
결국 찾음.................
case HSSFCell.CELL_TYPE_NUMERIC:
if( HSSFDateUtil.isCellDateFormatted(cell)){
SimpleDateFormat fommatter = new SimpleDateFormat("yyyyMMdd");
data = fommatter.format(cell.getDateCellValue());
} else {
double ddata = cell.getNumericCellValue();
if ( HSSFDateUtil.isValidExcelDate(ddata) ){
SimpleDateFormat fommatter = new SimpleDateFormat("yyyyMMdd");
data = fommatter.format(cell.getDateCellValue());
} else {
data = String.valueOf(ddata);
}
}
http://phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=60412
http://yui.2clics.net/
http://phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=52074