달력

07

« 2018/07 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  
2018.07.04 14:37

Javascript Promise 설명 잘된 블로그 JavaScript2018.07.04 14:37

https://joshua1988.github.io/web-development/javascript/promise-for-beginners/

Posted by 라면사리누구야!!

myBaitis 3.2.2 버전 이후로 resultType에 HashMap(or Map)을 사용하거나, 전자정부 프레임워크를 사용할경우 EgovMap을 사용하게 되면 

데이터가 Null인 컬럼은 Map의 KeySet에 제외가 된다...재미 있는건...모든 row의 null컬럼이 제외 되거나 포함이 되는게 아니라,

특정 row에 null인 컬럼이 있으면 해당 컬럼만 제외가 된다는 것이다..

(sqlMapper일 경우 해당 되는데 sqlMap에서는 어떤지 모르겠다...)

이게 무슨 말이냐...예로 

 A

 가

 가

 null

 나

 null

 나

 다

 다

 다


이렇게 데이터가 있는 경우 조회를 해서 Map으로 결과를 받게 되면,

{A=가, B=가}

{A=나, C=나}

{A=다, B=다, C=다}

이렇게 아주~ 웃기는 데이터가 나오는 것이다...ㅡㅡ;;;


왜 이렇게 했는지는 모르겠지만 다행이 옵션으로 null인 컬럼도 조회 되게 제공을 하고 있다.

(나는 전자정부프레임워크를 사용하기 때문에, 전자정부프레임워크 기준임...ㅋ)


sql-mapper-config.xml 파일에 <configuration></configuration> 태그 안에다 아래 내용을 넣어 주면 된다.


<settings>

<setting name="callSettersOnNulls" value="true"/>

</settings>


다른거와 마찬가지로 반나절 삽질 한거 같다...ㅡㅡ;;; DB가 개발서버와, 운영서버, 테스트 서버로 나눠저 있다 보니...DB커넥션 정보가 잘못 된줄 알고....아놔...ㅡㅡ;;;


끝!!

Posted by 라면사리누구야!!

전자정부프레임워크 3.6까지 json을 Return 시키기 위해 주로 사용했던 방법은

dispatcher-servlet에 custom view로 MappingJackson2JsonView 를 추가해서 소스에서는 

return new ModelAndView(ajaxMainView, resultMap); 를 해서 리턴을 시키고 있다.

하지만 전자정부프레임워크가 3.7로 업데이트가 되면서 프로젝트를 새로 생성을 하고, custom view만 추가해서 was를 구동을 하게되면

was 구동이 되면서 부터  

injection of resource dependencies failed; nested exception is java.lang.noclassdeffounderror: com/fasterxml/jackson/core/jsongenerator

어쩌구 저쩌구 블라블라블라~ 궁시렁궁시렁~ 

머 이런 에러가 난다...

(내용이 많지만 생략...)


원인을 찾아보니...의존성이 부족해서 그런거 였다...

새로생성한 프로젝트의 pom.xml에 보면 마지막에

<dependency>

    <groupId>com.fasterxml.jackson.core</groupId>

    <artifactId>jackson-core</artifactId>

    <version>2.5.1</version>

</dependency>

core만 의존성이 추가 되어 있고 databind는 빠져 있어서 그런거였다...

        <dependency>

            <groupId>com.fasterxml.jackson.core</groupId>

            <artifactId>jackson-databind</artifactId>

            <version>2.5.1</version>

        </dependency>


이렇게 databind에 대한것도 추가를 해주니...깔끔하게 해결!! 

(사실 어제 오후동안 삽질 한건데...ㅡㅡ;;; 이건 비밀임..ㅋㅋ)


무튼 나처럼 전자정부프레임워크 3.7로 업데이트 하고나서 같은 증상으로 삽질하는 사람들의 정신건강에 도움이 되었음 좋겠다...

(의존성을 필요한 핵심만 추가 하다 보니 빠진거 같다...)

Posted by 라면사리누구야!!

아파치 포트가 1024보다 크고, root 권한으로 실행하는데,

아래와 같은 오류가 발생하면서 아파치 서버가 실행되지 않는 경우가 있다.

service httpd start
Starting httpd: 
(13)Permission denied: make_sock: could not bind to address [::]:8000
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:8000
no listening sockets available, shutting down
Unable to open logs
                                                           [FAILED]

이 경우 SELinux(Security-Enhanced Linux) 정책으로 인한 문제이므로, 아래와 같이 확인한다.

sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

setenforce 0

service httpd start
Starting httpd: 
                                                           [  OK  ]

setenforce 1

이 방식으로는 restart를 하게 되면 동일한 오류가 또 발생하기 때문에,
setenforce를 아예 꺼버리거나 아니면 semanage를 이용하여 SELinux 설정을 변경한다.

semanage가 없으면 설치한다.

yum list policycoreutils-python

설치 완료되면, 
http 포트로 지정되어 있는 설정 정보를 확인한다.

semanage port -l | grep http
http_cache_port_t              tcp      3128, 8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989

사용하려는 포트가 지정된 포트인지 확인한다.
semanage port -m -t http_port_t -p tcp 8000
/usr/sbin/semanage: tcp/800에 대한 포트가 지정되지 않았습니다

포트가 지정되어 있지 않으면, 해당 포트를 추가한다.
semanage port -a -t http_port_t -p tcp 8000

정상적으로 등록되었는지 확인한다.
semanage port -l | grep http
http_cache_port_t              tcp      3128, 8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      8000, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989

아파치 restart를 다시 실행한다.
# service httpd restart
httpd 를 정지 중:                                          [  OK  ]
httpd (을)를 시작 중:                                      [  OK  ]


위와 같이 정상적으로 실행된 상태에서,
php 페이지 호출하는 403 fobidden이 발생하고, 아래와 같은 오류가 발생하는 경우는...

[error] (13)Permission denied: access to /wordpress/wp-admin/install.php

getsebool -a | grep httpd
allow_httpd_anon_write --> off
allow_httpd_mod_auth_ntlm_winbind --> off
allow_httpd_mod_auth_pam --> off
allow_httpd_sys_script_anon_write --> off
httpd_builtin_scripting --> on
httpd_can_check_spam --> off
httpd_can_network_connect --> off
httpd_can_network_connect_cobbler --> off
httpd_can_network_connect_db --> off
httpd_can_network_memcache --> on
httpd_can_network_relay --> off
httpd_can_sendmail --> off
httpd_dbus_avahi --> on
httpd_enable_cgi --> on
httpd_enable_ftp_server --> off
httpd_enable_homedirs --> off
httpd_execmem --> off
httpd_manage_ipa --> off
httpd_read_user_content --> off
httpd_setrlimit --> off
httpd_ssi_exec --> off
httpd_tmp_exec --> off
httpd_tty_comm --> on
httpd_unified --> on
httpd_use_cifs --> off
httpd_use_gpg --> off
httpd_use_nfs --> off
httpd_use_openstack --> off

빨간색 표시된 넘들을 on으로 설정해 준다.

setsebool -P httpd_can_network_connect_db on
setsebool -P httpd_enable_homedirs on

httpd_can_network_connect_db는 http 호출시 db 접속을 허용하는 것이고,
httpd_enable_homedirs은 http 호출시 home dir 접근을 허용한다.

httpd를 재시작해준다.
service httpd restart

-------------------------------------------------------------

출처 : http://dochi575.egloos.com/4867779

Posted by 라면사리누구야!!
2017.07.25 10:25

Eclipse working set 사용하기... Eclipse2017.07.25 10:25

이클립스 workspace에 프로젝트가 많아 짐에 따라 workspace를 분리를 하려다 우연하게 찾게된 이클립스 working set으로 관리 하는걸 찾게 되었다...

이클립스를 10년가까이 사용하면서 몰랐던 새로운 기능!! ㅎㅎㅎ

working set 으로 분리해 노으니까 보기도 편해지고...좋네~ ㅎㅎ

Posted by 라면사리누구야!!