폐쇄망에서 fcm토큰이 정상 발급되는지 확인하는 중이었다. 운영서버에서 IP와 port를 허용 후 소스를 반영하고 테스트 해야했지만, 공공기관은 반영일이 정해져 있기에 당장 불가능... 따라서 운영에서 라이트한 테스트를 준비했다.
1. 사용할 서버에 자바jdk 설치 해야함. (자바 컴파일/실행 명령어 사용 하기 위함)
2. 폐쇄망에서는 fcm의 파일은 토큰을 발급받을때 firebase에 연결이 안되므로, 프로젝트명
(.json)을 firebase에서 받아야한다. 그리고 프로젝트에 위치 시켜준다.
3. (Sender/Message/Result).java 파일 생성 후 운영에 폴더생성하고 자바 및 json파일을 넣는다.
4. 자바파일에서 사용되는 lib을 폴더에 위치시킨다.
기본 명령어
1. 컴파일 명령어 : javac fcmTest.java
2. lib, class 같이 컴파일 명령어 : javac -cp "/본인경로/lib/*:." fcmTest.java Result.java
3. 실행 명령어 : java -cp "/본인경로/lib/* :." fcmTest
# 1. 컴파일 실행
javac fcmTest.java
# 오류: 기본 클래스 fcmTest을(를) 찾거나 로드할 수 없습니다.
# 원인: 자바 파일 내 이전 소스 복붙의 잔해로 남은 package com.xxx.xx; 을 삭제해주면 해결
# 2. 컴파일 실행
# 오류: cannot find symbol public static Result2 sendNoRetry(Message2 message2).......
# 원인: 라이브러리를 포함해서 컴파일을 수행해야한다. -cp "/home/tiger/tomcat8.5/temp/test/lib/*" 추가시 > 해결
javac -cp "/home/company/tomcat8.5/temp/test/lib/*" fcmTest.java
# 3. 라이브러리 추가하고 다시 컴파일
# 오류: cannot find symbol public static ....... (클래스명)
# 원인: fcmTest.java뿐만아니라 필요한 자바클래스들을 같이 컴파일 해서 수행시 해결!
# 해당 폴더에 .class파일들이 생성됨을 확인함.
javac -cp "/home/company/tomcat8.5/temp/test/lib/*" fcmTest.java Result2.java Message2.java
# 4. 컴파일 됬으니 실행!
java -cp "/home/company/tomcat8.5/temp/test/lib/*" fcmTest
# 오류: 기본 클래스 fcmTest을(를) 찾거나 로드할 수 없습니다.
# 원인: 라이브러리 (:.) 를 뒤에 안붙임... 해결!!
java -cp "/home/company/tomcat8.5/temp/test/lib/*:." fcmTest
# 5. 성공!!
# fcmTest.java가 정상적으로 컴파일 > 실행 됬다.
위 과정을 통해 운영에 올린 다른 소스에는 영향없이 fcm api 통신을 성공시켜 알림을 받았다.
[ 오류 ] java.lang.OutOfMemoryError: Java heap space (MIME 관련) (1) | 2024.09.25 |
---|---|
[ 웹 개발 ] 반환 컨트롤러 String VS ResponseEntity<String> 차이 (0) | 2024.08.22 |
[ 웹개발 ] android 앱을 tomcat서버에 연동(.apk) (0) | 2024.07.11 |
[ 리눅스 ] Linux 서버에 ssh접속 IP 제한하는 방법 (Ubuntu) (0) | 2024.05.27 |
[ 웹개발 ] 안쓰는 노트북을 서버용으로 사용하기 ( Ubuntu Server ) (0) | 2024.05.18 |