본문 바로가기
교육 정리/입사교육

교육환경 만들기, mavenBoard 오류 고치기

by Jint 2021. 8. 2.

@ 교육환경 만들기

1. JDK 1.8
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

Windows x64 다운 (2021.08.02 기준 Java SE Development Kit 8u301)

C드라이브 프로그램 파일에 Java폴더 경로로 설치

 

https://lee1535.tistory.com/13 - 참고(★ 기본 자바 환경변수 설정!!)


2. egovFramework3.7.0
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:dev3.7:gettingstarted - 참고

https://www.egovframe.go.kr/home/sub.do?menuNo=41
eGovFrameDev-3.7.0-64bit.exe [1,448,961,257 Byte] 다운로드

C드라이브 경로로 설치


3. TomCat 8.5
https://bamdule.tistory.com/134 - 참고
https://goni9071.tistory.com/454 - 참고2

https://tomcat.apache.org/download-80.cgi

https://goni9071.tistory.com/430 - 환경변수 설정

https://meyouus.tistory.com/15 - 톰캣 8.5 이클립스와 연동


4. Oracle11g Express Edition (XE버전)
XE버전은 홈페이지에 11g는 막혀서 18c부터 다운로드 가능
https://www.filehorse.com/download-oracle-database-express-64/ - 여기서 다운

https://gostart.tistory.com/143 - 참고

http://127.0.0.1:8080/apex/f?p=4950 오류 뜨면,
https://blog.naver.com/ndb796/220628263321 - 참고

바탕화면에 만들어진 Get Started With Oracle Database 11g Express Edition 파일 실행하거나,
http://127.0.0.1:8080/apex/f?p=4950:1:2461248509371798 실행하여 제대로 설치됬는지 확인

오라클 설치후 꼭 재부팅

- User 생성
sqlplus "/as sysdba"
create user test identified by 123; - 계정 및 비밀번호
grant connect,resource,dba to test;
exit
sqlplus - 이후 로그인 해보기

- sql developer
https://www.oracle.com/tools/downloads/sqldev-downloads.html - Windows 64-bit with JDK 8 included 설치
https://jack-of-all-trades.tistory.com/222 - 참고


- 오라클 리스너
https://gojoo.tistory.com/73

- 서버 실행시 cmd로 죽이기
https://myblog.opendocs.co.kr/archives/1702

// 시행착오
- Missing artifact ojdbc:ojdbc:jar:14 오류시 ojdbc14.jar 직접 받아 다운받아야 함
https://bizdevelop.tistory.com/6 - 참고
http://www.java2s.com/Code/Jar/o/Downloadojdbc14jar.htm - 여기서 다운
(주의사항 : ojdbc-14.jar 로 파일명 수정하고 lib폴더에 넣기)

(혹시라도 안되면 ojdbc8.jar 다운 (jre 1.8이라서))
https://www.oracle.com/database/technologies/jdbc-ucp-122-downloads.html
//

5. Notepad ++
https://notepad-plus-plus.org/downloads/v8.1.2/


@ mavenBoard 오류 고치기

(1) pom.xml 오류
https://junemoon.tistory.com/191 - ojdbc 버전 참고

https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8/19.7.0.0 - Ojdbc8 » 19.7.0.0버전

- jdk8 버전과 ojdbc8 버전이 호환되므로 Ojdbc8 » 19.7.0.0버전으로 수정
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.7.0.0</version>
</dependency>

- 기존 ojdbc6 사용시 12.1.0.2버전으로 바꾸기
<!-- ojdbc -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.0.2</version>
</dependency>

(2) src/main/resource - spring.context - database-context.xml 오류
- 생성한 DB User의 username과 password가 같도록 수정
<!-- dataSource -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="test" />
<property name="password" value="123" />
</bean>

(3) 톰캣 서버 오류 (Port 8080 required by Tomcat v8.5 Server at localhost is already in use.)
https://aspring.tistory.com/entry/Apache-Tomcat-%ED%8F%AC%ED%8A%B8-%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0-Starting-Tomcat-v80-Server-at-localhost-has-encountered-a-ploblem-Port-8080-required-by-Tomcat-v80-Server-at-localhost-is-already-in-use - 참고

- 오라클 11g express에서 8080 포트 변경
sqlplus/nolog
conn /as sysdba
select dbms_xdb.gethttpport() from dual; - 현재 사용중인 포트번호 확인
DBMS_XDB.GETHTTPPORT()
----------------------
                  8080

exec dbms_xdb.sethttpport(9090); - 포트번호 9090으로 변경
select dbms_xdb.gethttpport() from dual; - 변경되었는지 재확인
DBMS_XDB.GETHTTPPORT()
----------------------
                  9090

(4) java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 오류
https://s00741.tistory.com/entry/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%97%90%EB%9F%AC-javalangClassNotFoundException-orgspringframeworkwebcontextContextLoaderListener - 참고

- 프로젝트 설정에서 Deployment Assembly에 Maven Dependencies를 추가
프로젝트(mavenBoard) 우클릭 - Properties - Deployment Assembly - add... - Java Build Path Entries - Maven Dependencies 선택 후 finish
서버 재시작

(5) http://localhost:8080/mavenBoard/main.ino 실행시 500 오류

- Table 만들기 (도구 : sql developer)
CREATE TABLE FREEBOARD(
NUM NUMBER(5),
NAME VARCHAR2(20),
TITLE VARCHAR2(100),
CONTENT VARCHAR2(1000),
REGDATE DATE
);

CREATE SEQUENCE FREEBOARDNUM_SEQ;

commit;

(6) http://localhost:8080/mavenBoard/freeBoardInsert.ino 에서 글쓰기 후 return "redirect:/freeBoardDetail.ino?num="+dto.getNum();로
리다이렉트시 오류, Request processing failed; nested exception is java.lang.NullPointerException 오류
https://deeplify.dev/back-end/spring/select-key - 참고

- return "redirect:/freeBoardDetail.ino?num="+dto.getNum(); - 오타 수정

- selectKey 활용하기
<insert id="freeBoardInsertPro" parameterType="freeBoardDto">
<selectKey keyProperty="num" resultType="int" order="BEFORE">
SELECT FREEBOARDNUM_SEQ.NEXTVAL FROM DUAL
</selectKey>
INSERT INTO FREEBOARD(NUM, TITLE, NAME, REGDATE, CONTENT)
VALUES( #{num}, #{title}, #{name}, SYSDATE, #{content})
</insert>

 

왜 selectkey를 사용하는가?
freeBoardMapper.xml에서 selectKey를 통해 num을 DTO로 넣어주기 위함.

댓글