toISOString 은 UTC시간을 기준으로 반환하기 때문에 한국과 9시간이 차이가 난다.
 
해결방법은
  1. 한국의 offset을 수동으로 추가한 뒤 그 값을 빼주기
  2. moment.js 라이브러리 사용하기
라이브러리는 추가적으로 사용하고 싶지 않으니까 offset을 수동으로 추가하는 방법을 사용한다.
var date = new Date();
var offset = date.getTimezoneOffset() * 60000;
var dateOffset = new Date(date.getTime() - offset);
var base_date = dateOffset.toISOString().substring(0,20).replace(/-/g,'');
 
반응형
 
Select 한 결과를 resultClass 에 매핑할때 오류가 발생한다.
 
1. resultClass="java.util.Map"  으로 사용한경우
    resultClass="java.util.HashMap" 으로 변경해주면 해결됨
    Map은 인터페이스라 객체성성이 안되서 발생
 
2. 임의로 만든 Class 에서 발생한 경우
    생성자가 없어서 발생
 
발생한 Class 예제
@Setter
@Getter
@Builder
public class PersonDto  {
     private int age;
     private String name;
}
 
@NoArgsConstructor
@AllArgsConstructor​
를 추가 하면  해결됨
반응형

1. 윈도우 오른쪽 하단의 네트워크 아이콘(PC모양) 우클릭하여 네트워크 및 인터넷 설정 열기 클릭한다.

 

 

 

 

 

 

2. 설정창에서 이더넷 > 아댑터 옵션 변경 > 이더넷 우클릭 속성 선택 > 속성 에서 Microsoft 네트워크요 파일 및 프린터 공유 체크 해제 > 확인 클릭

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. PC를 재부팅 해서 확인해보면 445 포트가 사라졌다.

 

반드시 재부팅해야 적용됨

 

-끝-

반응형
1. 의존성 추가
<dependency>
    	<groupId>javax.mail</groupId>
    	<artifactId>javax.mail-api</artifactId>
   	<version>1.6.2</version>
</dependency>
<dependency>
	<groupId>com.sun.mail</groupId>
	<artifactId>javax.mail</artifactId>
	<version>1.6.2</version>
</dependency>

 

2. 샘플코드 

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class EmailSender {

    // 구글 이메일
    static final String user_email= "XXXXX@gmail.com";
    // 구글 비번
    static final String user_pw = "XXXXX";
    
    static final String smtp_host = "smtp.gmail.com";
    static final int smtp_port = 465;  // TLS : 587, SSL : 465

    public static void Send() throws Exception {
        Properties props = System.getProperties();
        props.put("mail.smtp.host", smtp_host); 
        props.put("mail.smtp.port", smtp_port); 
        props.put("mail.smtp.auth", "true"); 
        props.put("mail.smtp.ssl.enable", "true"); 
        props.put("mail.smtp.ssl.trust", smtp_host);
        
        Session session = Session.getInstance(props,
                new javax.mail.Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(user_email, user_pw);
                    }
                });
        
        try {

            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(user_email));

           // 받는 이메일
            message.setRecipients(
                    Message.RecipientType.TO,
                    InternetAddress.parse("XXXXX@gmail.com, XXXXX@naver.com")    
            );
	
	  // 제목
            message.setSubject("테스트 메일입니다."); 
	  
	   // 내용
            message.setText("이것은 테스트 메일입니다. \n\n 잘 갔나요?");

            // 발송
            Transport.send(message);
            
        } catch (MessagingException e) {
            e.printStackTrace();
            System.out.println(e.getMessage());
        }
    }
}

위 코드를 실행했더니 

Application-specific password required

오류가 발생한다.

구글링 해보니 2차인증 설정시 발생하는 오류라고 함

해결방법은  구글 보안탭에서  앱 비밀번호를 생성해서 사용하면 된다.
 
3. 앱 비밀번호 만들고 사용하기
1) 구글계정으로 이동 (https://myaccount.google.com/)
2) 보안  선택

 

3) 2단계 인증 선택

4) 맨밑에 앱 비밀번호 선택

5) 앱 선택 : 메일, 기기 선택 : windows 컴퓨터, 생성 클릭 하면 16자리 비밀번호가 생성된다.

 

6) 생성된 비밀번호를 user_pw 로 사용하면 메일 잘 발송된다.

 

 

 

 

반응형
jsoup 으로 json, xml 결과 페이지를 호출하면
Unhandled content type. Must be text/*, application/xml, or application/*+xml 
오류가 발생함
 
해결방법은
.ignoreContentType(true)  설정하면 됨
 
Jsoup.connect("/test.json")
  	.ignoreContentType(true)
  	.method(Method.GET)
  	.execute();

혹은 header에 ContentType 을 json이나 xml 로 지정해도 될 듯.

 

끝.

반응형

 

1. json-simple  의존성 추가

<dependency>
    <groupId>com.googlecode.json-simple</groupId>
    <artifactId>json-simple</artifactId>
    <version>1.1</version>
</dependency>
 

 

2.  샘플 코드
String jsonText = "{ \"test\" : \"1234\" }";
JSONParser parser = new JSONParser();
Object obj = parser.parse(jsonText);
JSONObject jsonObj = (JSONObject) obj;
String testValue = jsonObj.get("test").toString();
System.out.println("testValue : " + testValue);
// 결과
testValue : 1234

 

반응형
try ~ 오류가 catch가 안 된다.
 
var xReq = new XMLHttpRequest();
xReq.onreadystatechange = function() {
   console.log(xReq.readyState);
  console.log(xReq.status);
}
xReq.open("POST", "http://localhost:9999/test", true);
xReq.send(post);
 
서버 (http://localhost:9999/) 실행 중이지 않은 경우
xReq.send(post); 에서
net::ERR_CONNECTION_REFUSED 오류가 발생한다.
 
그래서, 오류 발생시 처리를 위해...
 
try {
        xReq.send(post);
} catch(err) {
        alert('오류가 발생하였습니다. ');
//
}
 
이런 식으로 try ~ catch ~ 해보았으나 catch 가 안된다.
 
이럴 땐, 아래 처럼 하면 오류시 처리를 할 수 있다.
 
xReq.onerror = function () {
     alert('오류가 발생하였습니다.');
      //
};
 
 
 
끝.
반응형
로컬 테스트시 오류 발생
원인유추
  1. 권한문제
  2. 타임존 인식문제
 
  1. 은 아니었고 왜냐면 툴(workbench)로 잘 접속된다. telnet 해봐도 연결 잘되고
 
검색하다보니,  아래 글을 발견
타임존을 아시아/서울로 설정하니 해결됨.
 
 
mysql-connector-java 5.1.X 버전 이후로 KST 를 인식못하는 오류가 있다.
 
 
또는, 기존 운영중인 서버라면 아래와 같이 Asia/Seoul 로 설정해 준다.

 

타임존을 UTC 또는 Asia/Seoul 로 지정해야 정상적으로 연결된다.또는 커넥터를 낮은 버전으로 해도 된다.
반응형

 

의존성 추가한 라이브러리가 안 받아지는 오류가 발생함.
라이브러리가 없으니 다양한 오류가 발생함.
아무리 clean 하고 maven update project 해도 해결이 안됨.
프로젝트를 새로 받아서 해도 안됨.
pom.xml repository를 변경해도 암됨.
원인은 repository 캐시 때문이었음
 
아티팩트 (또는 전체 로컬 저장소)를 c:\Users\<username>\.m2\repository  직접 삭제하고
다시 maven install해보니 제대로 받아온다.
 
끝.

 

반응형

대문자로 만들어놓은 테이블명이 무슨이유인지 .. 모르겠지만 소문자로 변경되었을 떄

대문자로 다시 변경하는 방법

대/소문자 구분이 없는경우이므로 대/소문자를 동일하게 인식한다.

 

테이블명 : TB_MEMBERS

sql > rename tb_members to TB_MEMBERS

이런식으로하면 오류가 발생한다. 동일한 이름으로 인식하므로.. 

따라서 아래처럼 해야한다.

sql > rename tb_members to tb_members_temp

sql> rename tb_members_temp to TB_MEMBERS

 

 

sql> rename tablename to tempName;
sql> rename tempName to TABLENAME;

 

반응형

+ Recent posts