상황:
CallableStatement에서 사용하는 프로시져가 없는 경우, 오타 등으로 못찾는 경우

해결:
1. 'PROC_INPUT_DATA' Procedure를 만들어준다.
2. 컴파일이 안된경우 생긴다.



Tip 

Toad for Oracle : F9  프로시저 컴파일 단축키

Toad for Oracle : F5  프로시저 저장


1. getSession(), getSession(true)

 - HttpSession이 존재하면 현재 HttpSession을 반환하고 존재하지 않으면 새로이 세션을 생성합니다


2. getSession(false)

 - HttpSession이 존재하면 현재 HttpSession을 반환하고 존재하지 않으면 새로이 생성하지 않고 그냥 null을 반환합니다


3. 사용 예

HttpSession session = request.getSession();

HttpSession session = request.getSession(true);

위는 동일한 결과를 반환합니다

새로 생성된 놈인지 확인은 session.isNew() 로 가능합니다

그리고 getSession(), getSession(true)는 null 체크없이 바로 getAttribute()를 사용해도 무방하지만, getSession(false)는 null을 리턴할수 있기 때문에 null체크를 해야 합니다.

HttpSession session = request.getSession(false);

if (session != null)

    User user = (User) session.getAttribute("User");

환경

java 1.7.0

maven 3.2.2

단순 참조만 필요한 경우

maven repository 가 없는 로컬 jar 파알을 maven 프로젝트에 추가 하기 위해서는 사설 repository를 만드는 방법도 있지만

다음과 같이 "dependency" 정의 시 scope 노드와 systemPath 노드를 사용하여 프로젝트에 포함된 jar 파일을 지정하여 줄 수 있다.

<dependency>
    <groupId>smack</groupId>
    <artifactId>smack-custom</artifactId>
    <version>1.0.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/smack-custom.jar</systemPath>
</dependency>

groupId, artifactId, version 은 임의로 정의해도 무방하다

${project.basedir} 는 프로젝트의 ROOT 패스

로컬을 Repository 를 활용하는 방법

위와 같이 처리하는 경우는 문제점이 있다. scrop 의 system 이기 때문에 maven 빌드 시 해당 jar 파일이 포함되지 않는다.

이런 경우는 pom.xml 에 다음과 같이 정의하여 로컬을 repositoy로 활용하는 방법도 있다.

<dependency>
    <groupId>smack</groupId>
    <artifactId>smack-custom</artifactId>
    <version>1.0.0</version>
</dependency>
<repository>
	<id>in-project</id>
	<name>custom jars</name>
	<url>file://${project.basedir}/lib</url>
</repository>

이 때 ${project.basedir}/lib 는 maven 디렉토리 구조를 따르도록 구성해주어야 한다.

위의 예제에서는 디렉토리 및 파일명은 다음과 같이 구성해야 한다.

${project.basedir}/lib/smack/smack-custom/1.0.0/smack-custom-1.0.0.jar

만일 jenkins에서 maven 빌드를 하는 경우라면 다음과 같이 repository를 하나 더 추가해준다.

<repository>
	<id>in-project-jenkins</id>
	<name>custom jars-jenkins</name>
	<url>file://${JENKINS_HOME}/jobs/${JOB_NAME}/workspace/lib</url>
</repository>


'Server Enterprise > Gradle & Maven' 카테고리의 다른 글

[Gradle] cache 삭제  (0) 2021.08.12
[Maven] M2Eclipse project 생성 3  (0) 2015.08.26
[Maven] M2Eclipse project 생성 2  (0) 2015.08.26
[Maven] M2Eclipse project 생성 1  (0) 2015.08.26
[MAVEN] 설치 및 이클립스 연동  (0) 2015.08.17

+ Recent posts