'java'에 해당되는 글 28건

  1. 2011.09.28 java.sql.SQLException: Column count doesn't match value count at XXX 가 발생하는 경우
  2. 2011.09.27 JDK 설치시 이것저것 물어보는 대화창 없이 커맨드창에서 한번에 쭉 설치하기(Winodws)
  3. 2011.09.21 STS(SpringSource Tool Suite) 활용하기 : RequestMapping 정보 보기 2
  4. 2011.09.20 Apache Velocity 변수가 null 일때 공백으로 출력되게 하기
  5. 2011.09.08 java.security.NoSuchAlgorithmException: SunTlsRsaPremasterSecret KeyGenerator not available 익셉션이 날때

java.sql.SQLException: Column count doesn't match value count at XXX 가 발생하는 경우

실행하는 SQL 들중 INSERT 문에서 발생하는 익셉션이다.

INSERT INTO TB( COLUMNS... ) VALUES( COL_VALUES... )

요런 SQL 을 실행한다고 했을때 COLUMNS.. 에 있는 컬럼 갯수랑 COL_VALUES... 에 있는 밸류 갯수가 틀릴경우 발생한다.




대체적으로 ,(콤마) 를 .(쩜) 으로 타이핑을 잘못쳐서 에러가 나는 경우가 많음 -_-

고게 아니면 컬럼 갯수와 밸류 갯수를 잘 비교해 보길 바람.

JDK 설치시 이것저것 물어보는 대화창 없이 커맨드창에서 한번에 쭉 설치하기(Winodws)


탐색기에서 더블클릭만 하면 될것을..

뭐 굳이 귀찮게 요렇게 설치할 필요성은 1g 도 없지만 그냥 뭐 이런것도 있구나~~~하는.. 그냥 재미삼아~


만약 다운받은 jdk 설치파일이 e:\jdk-6u26-windows-x64.exe 에 요렇게 있다면

 
커맨드창 실행후 다운로드 받은 경로까지 이동한다. 

cd e:\

e:\jdk-6u26-windows-x64.exe /passive installdir=설치할경로,ex)c:\jdk\jdk1.6.26

요렇게 뽓 입력하고 엔터를 치면 이것저것 물어보면서 확인버튼 누를필요없이 쭉 그냥 설치가 된다;;  

다시 말하지만 이런 뻘짓은 그냥 재미로 해본거다.



 


뭐 그리고 아예 아무 UI 도 안띄우고 그냥 빽그라운드로 설치하고 싶다면

e:\jdk-6u26-windows-x64.exe /quiet installdir=설치할경로,ex)c:\jdk\jdk1.6.26

요렇게 하면 된다. 엔터를 치면 명령이 바로 끝나버리지만 빽그라운드로 jdk 를 설치하고 있는중이다 -_-; 

 

STS(SpringSource Tool Suite) 활용하기 : RequestMapping 정보 보기

STS 를 설치해서 활용할수 있는 기능중 하나로 spring 설정 파일을 참고해서 현재 프로젝트에 정의된 RequestMapping 정보들을 확인할 수 있다.

먼저 그렇게 하기 위해서는 해당 프로젝트를 스프링 프로젝트로 바꿔줄 필요가 있다.

이미 스프링 프로젝트로 맨들어진 프로젝트는 그냥 냅두면 된다.


기존 프로젝트를 스프링 프로젝트로 바꾸기 위해서는 프로젝트명 > 마우스 오른쪽 버튼 >  Spring Tools > Add Spring Project Nature

를 뽓 클릭하면 된다. 그러면 프로젝트명 옆에 s 라고 아이콘으로 뽓 표시된다.





이제 RequestMapping  정보를 확인해 보자.

고걸 하기 위해서는 Window >  Show View > Other 로 가서 목록중에 있는 Spring Explorer View 를 추가해 주자.



 


Spring Explorer 에는 현재 workspace 에 있는 프로젝트들중 Spring 프로젝트들이 표시되고 Spring 설정내용들을 요약적으로 볼수 있다.





여기에 있는 것들중 <mvc:annotation-driven/> 이 선언된 스프링 설정 xml 파일에서

오른쪽 버튼 클릭 > Spring Tools > Show RequestMappings 를 클릭하면 현재 프로젝트에 선언된 모든 RequestMapping 들의 목록이 보여진다.


Apache Velocity 변수가 null 일때 공백으로 출력되게 하기

템플릿과 모델 데이터를 결합해서 파싱할때 모델에 해당 변수가 없을때 ${ XXX } 같은게 결과로 변환되어 출력된다.

찾아보니까 $!{ XXX } 요렇게 느낌표를 붙여주면 공백으로 변환된다고  하던데 일일히 바꾸기가 귀찮았다.

일일히 바꾸기 귀찮을땐 InvalidReferenceEventHandler 를 한번 써보자

InvalidReferenceEventHandler 인터페이스를 구현한 클래스를 하나 맨들고 밸로시티 Property 로 그것을 사용하도록 설정해 주면 된다.



먼저 InvalidReferenceEventHandler 인터페이스를 구현한 클래스이다.
package com.tistory.stove99;

import org.apache.velocity.app.event.InvalidReferenceEventHandler;
import org.apache.velocity.context.Context;
import org.apache.velocity.util.introspection.Info;

public class InvalidReferenceHandler implements InvalidReferenceEventHandler{

	@Override
	public Object invalidGetMethod(Context context, String reference,
			Object object, String property, Info info) {
		return "";
	}

	@Override
	public boolean invalidSetMethod(Context context, String leftreference,
			String rightreference, Info info) {
		return false;
	}

	@Override
	public Object invalidMethod(Context context, String reference,
			Object object, String method, Info info) {
		return null;
	}
}

invalidGetMethod 메소드에서 리턴을 "" 요걸로 공백을 리턴해 주면 된다.


이제 클래스를 맨들었으니 요걸 밸로시티에서 쓰도록 설정해 보자.

velocityProperties 에 기존에 설정된 프로퍼티에 아래와 같이 추가하면 된다.
eventhandler.invalidreferences.class = com.tistory.stove99.InvalidReferenceHandler

이제 해보면 아마 잘될꺼임.

java.security.NoSuchAlgorithmException: SunTlsRsaPremasterSecret KeyGenerator not available 익셉션이 날때


뭐 찾아보니 여러가지 경우에 발생하는 익셉션 같은데

나 같은 경우는 이클립스에서 Javamail 로  메일 보내는 클래스를 작성하고 이클립스 상해서 해당 클래스를 실행해 메일보내는 테스트를 할때 발생했다.



찾아보니까 이클립스에서 참조하는 JDK 의 JRE system libraries 에 암호관련 jar 파일이 추가가 안되 있어서 나는 에러라고 한다.




해결하는 방법은 Window > Preperences >  Java > Installed JREs 에 가서

Add 를 클릭해서 JRE를 다시 하나 추가한 다음 기존에 체크되 있던걸 remove 하고 방금 추가한걸 체크해 주면 된다.
prev 1 2 3 4 5 6 next