ajax post 실행시 content length가 2Mb 이상일 때, 서비스실패(파라미터가 null)

문제점 : Ajax로 post요청을 was로 날렸는데 서비스실패가 일어남
Was로그에서 확인해보니, controller에서 서비스는 인식하는데, 파라미터값을 null로 인식함

해결방법 : Ajax로 실행할 때, 컨텐츠데이터가 2Mb가 넘어가면 서비스가 실패함을 확인

https://docs.jboss.org/jbossweb/2.1.x/config/http.html
JBOSS에서 webservice post요청일 때, 용량을 제한하는 설정이 있으며, 디폴트로 2MB(2097152)로 되어 있음

웹서버에서 maxPostSize설정을 추가함
<connector name=”ajp” protocol=”AJP/1.3″ scheme=”http” socket-binding=”ajp” max-post-size=”5000000″/>

javascript underscore library _.defer() sample

function gogogo(arg,scope) {
document.write(scope + arg + ‘<br />’);
}

var ori = “AAA”;
var dest = “BBB”;
gogogo(“first”,ori);

setTimeout(function() {
gogogo(“setTimeout”,ori);
},1);

_.defer(function() {
gogogo(“defer”,ori);
setTimeout(function() {
gogogo(“setTimeout2”,ori);
},1);
ori = dest;
});

gogogo(“last”,ori);

결과 :

AAAfirst
AAAlast
AAAsetTimeout
AAAdefer
BBBsetTimeout2

 

테스트:
https://jsfiddle.net/7t2bV/59/

Dexie.js(indexedDB) IE에서 속도느림현상

크롬(version57)과 익스11에서 dexie 성능테스트

익스11에서는 너무 느리다.

Dexie.js 정보
http://dexie.org/docs/Dexie.js.html

jsfiddle.net에서 소스 시뮬레이션
https://jsfiddle.net/xf2zrL4p/77/

소스실행시에 익스에서는 Promise is undefine에러가 발생하므로, bluebird.js 를 넣는다.

<script src=”https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.3.5/bluebird.min.js”></script>

 

참고 웹사이트

https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/offline-for-pwa?hl=no

http://programmingsummaries.tistory.com/325

java에서 html(xml)구조 dom만들기

일하다가 이것때문에 시간을 마니 잡아먹어서 기억할 겸 메모한다.
처음에는 org.apache.xerces.dom.DocumentImpl와 org.w3c.dom.Document, DOMImplementationRegistry, DOMImplementationLS 를 사용했는데(how-can-i-build-an-html-org-w3c-dom-document),
라이브러리가 꼬여서 다른방법이 없나 찾아보다가 DocumentBuilder,TransformerFactory를 사용하는 방법으로 구현했다.

결과:

<ul>
<li>
<a href=”#none”>Test</a>
</li>
</ul>

goorm.io + devpack(Obics) + Spring boot

웹IDE : goorm.io
PaaP : devpack(Obics)
웹서비스 : Spring boot

테스트 삼아서 위의 셋업으로 개발환경을 구성

잘안되는 문제가 발생하면 구글링을 통해서 도움을 많이 받았으므로,
대표적으로 도움받은 사이트를 링크한다.

중간에 이상한 문제들이 많았는데,  이런 문제를 해결하는게 갈 수록 힘들다.
그냥 서비스 개발에만 치중하고 싶다.

구름IDE에서 소스컴파일, 실행하는 명령어
mvn clean package && java -jar target/gs-rest-service-0.1.0.jar

구름IDE에서 devpack로 푸쉬하는 명령어
cf push sample(서비스이름) -p target/gs-rest-service-0.1.0.jar

  • cloudpack가입하고 devpack신청하는 법
    devpack을 신청하려면 먼저 cloudpack에 가입하고 ucloud server 상품신청해야함.
    상품을 신청했다고 해서 돈을 내는 건 아니고 웹서비스에서 사용할 각 서버등을 신청해야만 그때부터 돈이 나간다. 신용카드 정보를 기입해야하므로 참고
    그리고나서 devpack을 신청한다. 낮은 서비스는 가격이 낮아서 테스트용을 쓸해보인다.
  • devpack에 push한 후 웹서비스가 실행안되고 에러발생
    Caused by: java.lang.IllegalArgumentException: Cannot instantiate interface org.springframework.context.ApplicationContextInitializer : org.cloudfoundry.reconfiguration.spring.CloudPropertySourceApplicationContextInitializer
    Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContextInitializer
    해결방법 : 어이없게도 Spring Boot 버전 때문에 발생한 문제로 pom.xml에서 org.springframework.boot 버전을 1.4.2.RELEASE –> 1.3.7.RELEASE 변경
    https://github.com/cloudfoundry/java-buildpack/issues/327
  • devpack에 push할 때, buildpack에러나는 문제
    Staging failed: An application could not be detected by any available buildpack
    cf push할 때 -p 옵션사용
  • devpack에 push할 때, menifest.yml 설정방법

    http://stackoverflow.com/questions/37225444/spring-boot-application-does-not-start-in-cloudfoundry
  • Spring으로 RESTful 웹서비스 만들기   https://daehwann.wordpress.com/2014/07/14/building-a-restful-web-service/
  • Deploying with Application Manifests
    https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html
  • Spring Cloud 사용방법
    http://kerberosj.tistory.com/230