DevEnjoy

One Step Closer

Month: 10월 2014

grails 기반 my-sql 연동시 gradle plugin 적용

2014년 10월 29일 by YongPwi Leave a Comment

현재 작업중인 grails 프로젝트에 my-sql을 사용하고 있다,,,

grails 기반으로 서버를 띄우고 외부 DB연동까지는 수월하게 작업하였다,,,

그런데 동일한 프로젝트를 Gradle plugin을 사용하여 서버를 띄우니,,,

에러가 작렬,,,

삽질을 어마어마하게 했다,,,

첫번째 문제는 grails 만으로 서버 가동할때에는 domain model 연관관계에,,,

문제가 있어서 서버 동작에는 문제가 없었는데,,,

gradle에서는 그 문제 때문에 고생을 좀 했다,,,

두번째 문제는 gradle로 서버가 올라갈때 발생하는 메모리 문제,,,

하단 첨부 이미지와 같이 VM options로 해결이 될거라 생각했는데,,,
Gradle VM Option

실제 Gradle이 동작할때는 저 옵션이 먹질 않았던 것 같다,,,

Gradle에 대한 사전지식이 없어서 좀더 찾아서 보충해야겠다,,,

그래서 겁나 구글링하여 찾아낸 방법은

build.gradle 설정 추가

1
2
3
4
5
tasks.withType(org.grails.gradle.plugin.tasks.GrailsTask) { Task t ->
    t.jvmOptions {
        jvmArgs "-Xmx512m", "-XX:MaxPermSize=256m"
    }
}

사실 코드는 금방 찾았는데 실제 코드를 붙여넣어보면

Task가 존재하지 않아서 에러 처럼 보여져서 시도하지 않았는데,,,

상위 치럼 메모리 설정을 해주면 Gradle 이 배포할때 저 옵션으로 메모리 설정을 하는듯 싶다,,,

역시 삽질,,,

혹시 필요한 분들이 있을지 몰라 현재 프로젝트의 build.gradle 소스를 남겨둔다,,,

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
buildscript {
    repositories {
        jcenter()
        mavenCentral()
        maven { url "http://repo.grails.org/grails/repo"}
    }
    dependencies {
        classpath "org.grails:grails-gradle-plugin:2.1.0"
    }
}

version '0.1'
group 'com.libqna'

apply plugin: 'grails'

repositories {
    mavenCentral()
    grails.central()
    maven { url 'http://repository.jboss.org/maven2/' }
    maven { url 'http://repo.grails.org/grails/repo' }
    maven { url 'http://repo.grails.org/grails/plugins' }
    maven { url 'http://repository.springsource.com/maven/bundles/release' }
    maven { url 'http://repository.springsource.com/maven/bundles/external' }
    maven { url 'http://repository.springsource.com/maven/libraries/release' }
    maven { url 'http://repository.springsource.com/maven/libraries/external' }
}

grails {
    grailsVersion = '2.3.5'
    groovyVersion = '2.1.9'
    springLoadedVersion '1.1.3'
}

tasks.withType(org.grails.gradle.plugin.tasks.GrailsTask) { Task t ->
    t.jvmOptions {
        jvmArgs "-Xmx512m", "-XX:MaxPermSize=256m"
    }
}

dependencies {
    bootstrap 'org.grails.plugins:tomcat:7.0.54'

    compile 'org.grails.plugins:scaffolding:2.0.1'
    compile 'org.grails.plugins:cache:1.1.1'

    runtime 'org.grails.plugins:hibernate:3.6.10.8'
    runtime 'org.grails.plugins:database-migration:1.3.8'
    runtime 'org.grails.plugins:jquery:1.11.0'
    runtime 'org.grails.plugins:resources:1.2.2'
    runtime 'org.grails.plugins:twitter-bootstrap:3.2.0'
    compile 'org.grails.plugins:font-awesome-resources:4.2.0.0'

    runtime 'mysql:mysql-connector-java:5.1.27'
}
Posted in: Database, Groovy, MySQL, Programing Tagged: Gradle, Grails, MySQL

jQuery Ajax에서 json Array 직렬화

2014년 10월 23일 by YongPwi 7 Comments

jQuery Ajax에서 data를 json 방식으로 Array를 전달하려고,,,

꽤 많은 삽질을 했다,,,

역시 안쓰면 금방 까먹는것 같다,,,

별다른건 없는데 form에 있는 데이터가 아니어서 강제적으로 json형태로 만들어 주고서

ajax call 하기만 하면 되는데 왜 안될까,,,

json 은 한개의 key 값으로 배열형태로 넘겼다,,,

그런데 server 단에서 getParameterNames을 받질 못하는 상황이 발생하였다,,,

넘어온 파라미터와 값을 찍어보니 내가 의도한 파라미터 명으로 넘어가지 않았다,,,

난 ‘key’ 명으로 배열로 받을거라 생각 했는데,,,

실제 넘어온건 ‘key[]’ 명으로 넘어왔다,,,

내가 json 데이터를 잘못 만들었나 싶어서 수 많은 삽질을 했다,,,

삽질과 구글링을 해보다 jquery.ajax api를 다시 좀보니,,,

data에 값이 배열인 경우에는 동일한 키값을 같는 직렬화 세팅을 해주는 문구가 있었다,,,

젠쟝,,,

결국은 하위 코드 주석처리 해놓은 traditional: true 를 추가해주니 의도한대로 ‘key’ 명으로 배열로 받을수 있었다,,,

사실 jQuery.param도 보긴 했는데,,,

꼼꼼하게 안보고 안된다는 생각에 무한 삽질 시간이 좀 후회스럽다,,,

jquery 1.4부터인가 바뀐거 같은데,,,

내가 마지막으로 써본 버전이 몇이던가,,,

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
32
33
34
35
var params = [];
var listSize = 5;
   for (var nRow = 0; nRow < listSize; nRow++) {
      params.push(nRow);
   }
$.ajax({
     url: callUrl,
     type: 'POST',
     data: {'key':params},
     dataType: 'json',
     //traditional: true,
     success: function (r) {
         
         });
     },
     error: function (xhr, status, error) {
                alert(xhr.status);
                alert(error);
     }  
});

//server단 확인
Enumeration em = request.getParameterNames();
while(em.hasMoreElements()){
    String parameterName = (String)em.nextElement();
    String parameterValue = request.getParameter(parameterName);
    String[] parameterValues = request.getParameterValues(parameterName);
    if(parameterValues != null){
         for(int i=0; i< parameterValues.length; i++){
             System.out.println("array_" + parameterName + "=" + parameterValues[i]);
         }
    } else {
         System.out.println(parameterName + "=" + parameterValue;
    }
}
Posted in: Javascript, Programing Tagged: ajax, array, jquery, json, traditional

Calendar

10월 2014
일 월 화 수 목 금 토
« 9월   11월 »
 1234
567891011
12131415161718
19202122232425
262728293031  

Recent Posts

  • ubuntu bastion 설정
  • Spring Boot properties 암호화
  • Git Repository Bitbucket과 Issue Tracker Redmine 연동 설정
  • Spring Security 동일 session 제어
  • Spring @Mock, @Mockbean, @InjectMock

Recent Comments

  • pzotov (Ubuntu 14.04에서 Sonarqube 6.7.1 service 등록)
  • cours de theatre paris (AWS ELB와 Auto Scaling 연동, nginx)
  • bayern munich (IntelliJ EAP Font rendering)
  • camiseta del chelsea (OS X에서 APP 아이콘 변경)
  • cheap football shirts replica (jQuery Ajax에서 json Array 직렬화)

Copyright © [the-year] [site-link].

Powered by [wp-link] and [theme-link].