반응형

버전 : 자바17

내 컨트롤러 메소드..

@GetMapping(value = "/info/{a1}")
    public void getInfo(@PathVariable String a1) throws Exception {
}

이 api를 호출하면 아래와 같은 에러가 나는 것이었다

java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not found in class file either.

 

path parameter와 변수명이 같으면 name을 명시 안 해줘도 되는걸로 알고있었는데

컴파일 모드가 debug 모드가 아닌 경우 컴파일 시 로컬 지역변수가 포함이 안 되어 변수 맵핑을 못 한다고 함.

 

컨트롤러 메소드에 name옵션 추가해줌.. 

@GetMapping(value = "/info/{a1}")
    public void getInfo(@PathVariable(name="a1") String a1) throws Exception {
}

 

아니면 컴파일 시 지역변수 포함하도록 build.gradle 파일을 손봐준다.

셋중에 하나 추가 

java {
    options.compilerArgs << "-g"
}


tasks.withType(JavaCompile) {
   options.compilerArgs.add("-parameters")
}


compileJava {
    options.compilerArgs <<  '-parameters'
}

 

반응형
반응형

HTTP 422 / 422 에러 / 422 Unprocessable Entity

요청을 잘 받았으나 문법 오류로 인하여 무언가를 응답할 수 없을때 발생한다고 함

 

원인)

HttpsURLConnection  사용시에 GET 으로 보내면서 데이터를 같이 보내서..

 

[원래 코드]

HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setDoOutput(true);

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream()));
bw.write("abc");
bw.flush();
bw.close();

 

[수정 후]

setDoOutput을 지워주고
출력 스트림을 없앴음.

HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setRequestMethod("GET");



setDoOutput 
URLConnection에 대한 doOutput 필드값 설정
URL 연결을 출력용으로 사용하려는 경우 DoOutput 플래그를 true로 설정하고,
그렇지 않은 경우는 false로 설정해야 한다. 기본값은 false이므로 안쓰면 false 임

반응형
반응형

1. 구글 월 캘린더에 포인터를 올리면 자동 스크롤이 돼서 계속 월이 이동하는 현상 발생
2. 윈도우 설정을 켜면 몇몇 옵션들이 자동 스크롤 되어 변경되는 현상 발생

마우스, 키보드 다 꺼보고 재부팅 해봐도 똑같았음.

아래 글들은 내가 시도해본 것들. 되지 않음.

https://support.google.com/calendar/thread/602889/calendar-jumps-months-ahead-when-i-move-my-mouse-from-one-day-to-another-during-a-month?hl=en

 

Calendar jumps months ahead when I move my mouse from one day to another during a month. - Google Calendar Community

 

support.google.com

https://kin.naver.com/qna/detail.naver?d1id=1&dirId=1060304&docId=448835574&qb=6rWs6riAIOy6mOumsOuNlCDsiqTtgazroaQ=&enc=utf8&section=kin.ext&rank=1&search_sort=0&spq=0

 

구글 캘린더에 마우스포인터를 놓으면 다음달로 자동으로 넘어가요

구글 캘린더에 마우스포인터를 놓으면 다음달로 계속 넘어가요 손을 떼지 않으면 2026년 2028년까지 쭉 계속 자동으로 넘어가는데이 문제 해결방법 아시는 분 계실까요?!

kin.naver.com

 

해결방법

제어판 > 하드웨어 및 소리 > 장치관리자 . 마우스 및 기타 포인팅 장치

HID 규격 마우스 우클릭 > 속성 > 드라이버 > 디바이스 사용 안 함

 

반응형
반응형

server was unable to start within 45 seconds

eclipse tomcat 올라오는게 너무 느린 현상 발생

 

해결

debug모드의 BreakPoints가 너무 많아서 그랬다. 삭제해주니 빨라졌다.

반응형
반응형

프론트페이지(jsp) => controller 에 폼데이터를 전송할때

데이터를 받아보니 문자가 자동 escape 처리가 되어있었다.

'  는  &#39;

"  는 &quot;

<&lt;

>&gt; 로 바뀌어 전달되었다.

근데 어떤 페이지에서 보낸건 escape 처리가 안 되고 어떤 페이지에서 보낸 건 escape 처리가 되어있었다.

ajax로 보낸건 자동 이스케이프가 안 되는데 form을 만들어서 submit한건 자동 이스케이프 처리가 되는거임..

확인해보니 전송하는 데이터의 Content-Typetext/html인 경우 escape 처리가 되는 듯 함.

 

자세한 설명 ..

text/html 콘텐츠에서는 특수 문자(예: `<`, `>`, `&` 등)가 올바르게 표시되고 HTML 문서의 구조를 방해하지 않도록 하기 위해 문자 이스케이프가 사용됩니다. 예를 들어, `<` 문자는 `&lt;`로, `>` 문자는 `&gt;`로, `&` 문자는 `&amp;`로 이스케이프됩니다. 이는 이러한 문자가 HTML 태그나 엔터티로 해석되는 것을 방지하기 위해 수행됩니다.

반면 application/json 콘텐츠에서 문자 이스케이프는 주로 JSON 형식 자체로 표현되는 데이터와 관련이 있습니다. JSON에는 JSON 파서에서 데이터가 올바르게 구문 분석되고 해석되도록 하기 위해 문자열 내의 문자를 이스케이프하는 자체 규칙이 있습니다. 예를 들어 JSON 문자열 내의 큰따옴표(`"`)와 같은 특수 문자는 `\"`로 이스케이프되고 개행 문자는 `\n`으로 표시됩니다.

 

반응형
반응형

가상환경 생성 전 필요한 패키지 설치

pip install ./configparser-4.0.2-py2.py3-none-any.whl
pip install ./contextlib2-0.6.0.post1-py2.py3-none-any.whl
pip install ./zipp-1.2.0-py2.py3-none-any.whl
pip install ./typing-3.10.0.0-py2-none-any.whl
pip install ./six-1.16.0-py2.py3-none-any.whl
pip install ./scandir-1.10.0-cp27-cp27m-win_amd64.whl
pip install ./pathlib2-2.3.7.post1-py2.py3-none-any.whl
pip install ./importlib_metadata-2.1.3-py2.py3-none-any.whl
pip install ./distlib-0.3.6-py2.py3-none-any.whl
pip install platformdirs-2.0.2-py2.py3-none-any.whl
pip install ./filelock-3.2.1-py2.py3-none-any.whl
pip install ./singledispatch-3.7.0-py2.py3-none-any.whl
pip install ./importlib_resources-3.3.1-py2.py3-none-any.whl
pip install ./virtualenv-20.15.1-py2.py3-none-any.whl

가상환경 생성 
python -m virtualenv virtualDirectory

반응형
반응형

NULL값 insert 시 발생한 오류.

"varbinary은(는) text과(와) 호환되지 않습니다."

 

내 테이블의 컬럼은 null이 가능한 컬럼인데..?

 

NULL이 binary 형태의 값으로 변환되어 들어가려고 해서 오류가 남..

해결 : NULL이 아니라 ''  즉 공백으로 넣으니 들어간다.... 거참

 

반응형
반응형

파일 확장자를 바꾸고 업로드 하는 경우 파일타입을 체크하기 위해 MIME타입 확인이 필요하게 되었다.

tika 라이브러리를 사용하였다.

MimeTypesFileTypeMap도 사용해봤는데 application/octet-stream만 반환해서 집어치웠음.

* 개발환경 : java7

* pom.xml에 의존성추가

<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>1.17</version>
</dependency>

 

Tika 객체를 생성해서 detect 메소드 사용

Tika tika = new Tika();
File file = new File("d:\\example\\file.txt")
String type = tika.detect(file);
System.out.println("type : " + type);

이미지 파일로 테스트 해 본 결과 아래와 같은 type들을 반환해주었다.

image/bmp
image/jpeg
image/png

반응형
반응형

TIKA 라이브러리 사용시 발생한 에러 

java.lang.UnsupportedClassVersionError: org/apache/tika/Tika : Unsupported major.minor version 52.0

 

* 개발환경 : JAVA 7

* 문제점

java7 환경에서는 tika 버전을 최대 1.17까지밖에 못쓴다.

그 이후의 릴리즈는 최소 java 8이 필요함 

 

* 아래 내용 참고 

13 December 2017: Apache Tika ReleaseApache Tika 1.17 has been released! This release includes new support for automatic image captioning, as well as numerous bug fixes and upgrades to dependencies. PLEASE NOTE: this will be the last version that will support Java 7. The next versions will require Java 8. Please see the CHANGES.txt file for the full list of changes in the release and have a look at the download page for more information on how to obtain Apache Tika 1.17.

https://tika.apache.org/

 

Apache Tika – Apache Tika

Apache Tika - a content analysis toolkit The Apache Tika™ toolkit detects and extracts metadata and text from over a thousand different file types (such as PPT, XLS, and PDF). All of these file types can be parsed through a single interface, making Tika

tika.apache.org

 

반응형
반응형

build path에 Maven Dependencies 가 없어가지고.. 온갖 에러가 다 나는데..

1. project clean

2. maven Update Project 

3. maven offline 설정, settings.xml 설정

내 환경은 오프라인이었고..    Maven Dependencies 가 별 염병을 다해봐도 안 생겼다. 

 

프로젝트 루트 경로의 .classpath 파일을 열어서 아래 내용을 추가해주고 프로젝트 클린 및 재정비하고 다시 올리니 잘 된다 ㅠ ㅠ 

	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
		<attributes>
			<attribute name="maven.pomderived" value="true"/>
			<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
		</attributes>
	</classpathentry>
반응형

+ Recent posts