AWS EC2 에서 ubuntu 인스턴스를 만들고 그 위에 RabbitMQ 를 설치하려고 했다.

설치는 잘 됐다.

그런데 웹에서 ubuntu 인스턴스의 public ip 로 접속하여 확인하려니 ....

'응답이 너무 늦습니다'????????????

걍 안되는 거였음..

구축 과정(+삽질)과 해결 과정

1. EC2 콘솔에서 ubuntu 인스턴스 생성

- 그냥 다음 다음 다음 넘어갔다. Security Group 이  삽질의 원인이 될 줄도 모르고...

2. ssh 로 ubuntu 인스턴스의 public IP 로 접속

1) key 파일 생성 시 다운받은 key 파일 이용 (1차 삽질. Putty 로도 삽질)

3. RabbitMQ 설치

1) enable management plugin

2) 계정생성, 권한 부여


자. 

ec2가 자동으로 부여해준 public ip:15672 로 들어가면

당연히 안됨,,


해당 인스턴스에 설정된 Security Group 을 수정해주자. (담부턴 인스턴스 생성 시에 설정해 주자.)

방법 1. Inbound Type 은 All TCP



방법 2. Custom TCP Rule 로 설정하고 Port Range 를 15672 (RabbitMQ 웹 서버 기본포트)로.



그리고 방법 1, 2 모두 Source 는 Anywhere

( + ssh 접속하려면 22번 포트도 열어야 두어야 함..)


그리고 나서 다시 웹에서

[public IP]:15672 로 접속하면 반가운 토끼가 등장한다.

Posted by 긍뎡
,

오름차순 db.collection.find({},{_id:0}).sort({field:1})

내림차순 db.collection.find({},{_id:0}).sort({field:-1})    


<Spring MongoDB>

import org.springframework.data.domain.Sort;
Query query = new Query();
 //오름차순. 
query.with(new Sort(new Sort.Order(Sort.Direction.ASC, "field")));

 //내림차순

query.with(new Sort(new Sort.Order(Sort.Direction.DESC, "field")));


Posted by 긍뎡
,

출처 : http://stackoverflow.com/questions/13715811/requestparam-vs-pathvariable


@RequestVariable : URI 로부터 placeholder 를 얻는다.

@RequestParam : parameter를 얻는다. 

예 ) http://localhost:8080/MyApp/user/1234/invoices?date=02-03-2016 '1234 

라는 User ID 를 가진 user의 2016년 2월 3일 자 invoice'를 얻고 싶을 때라는 URL 이 있을 때

@RequestMapping(value="/user/{userId}/invoices", method = RequestMethod.GET)
public List listUsersInvoices(
            @PathVariable("userId") int user,
            @RequestParam(value = "date", required = false) Date dateOrNull) {
  ...
}
@RequestVariable("userId") 는"/user/{userId}/invoices"로 맵핑된 url 에서 "userId" 로 위치의 '1234' 를 얻는다.
 @RequestParam(value = "date", requried = false ) Date dateOrNull) 은 "date" 파라미터의 값 ('=' 뒤에 오는) '02-03-2016'을 얻는다.



Posted by 긍뎡
,

':D > CSS' 카테고리의 다른 글

[CSS] !important  (0) 2015.06.08
[CSS] 셀렉터의 종류  (0) 2015.06.04
Posted by 긍뎡
,

[CSS] !important

:D/CSS 2015. 6. 8. 11:31
h1 {
    color : purple
}

h1 {
    color : red !important;
}

!important ==> 제일 우선시 되는 css 규칙


':D > CSS' 카테고리의 다른 글

[CSS] div 의 display 속성  (0) 2015.07.13
[CSS] 셀렉터의 종류  (0) 2015.06.04
Posted by 긍뎡
,

[CSS] 셀렉터의 종류

:D/CSS 2015. 6. 4. 17:53

셀렉터 종류

id 선택자

#셀렉터 : id 가 셀렉터

클래스 선택자

.셀렉터 : class 속성이 셀렉터

id 는 웹페이지 안에서 1번만 사용. 유일

class 는 웹페이지 안에서 여러번 사용 가능. 그룹 단위로 관리 하기 위해.

3.    type 선택자

. 도 # 도 없다. 태그명을 찾아 css 를 적용



--> 셀렉터 와 셀렉터 사이에 ',' comma 가 들어가면 'or'의 의미.

즉, h1이나 id가 link 인 element 의 색상을 변경.


':D > CSS' 카테고리의 다른 글

[CSS] div 의 display 속성  (0) 2015.07.13
[CSS] !important  (0) 2015.06.08
Posted by 긍뎡
,

aws에서 제공하는 많은 credentialpProvider 중에 뭘 써야 하는 지.. 한참 삽질하다가..

bean 설정도 해보고 configuration 파일도 만들어보고 ㅠㅠ 

결국엔 ClasspathPropertiesFileCredentialsProvider 를 사용.


1. credentials.properties 파일 설정



2. 어디에 박아야 하는가

여기에다


3. 어케 불러오냐.

credentialsProvider 를 생성해 줄 때 경로를 지정해준다.

Spring mvc 프로젝트라면   src/main/resources 안에다가 .properties 파일을 넣어준다.

만약 바로 밑에 넣지 않고 패키지로 한번 싼다면

Provider 생성할 때 경로에  "패키지명/credentials.properties" 로 해주면..

아마 잘 됐었는뎀...


public S3Util() {

		try {
		credentialsProvider = new ClasspathPropertiesFileCredentialsProvider( "credentials.properties" );
		credentials = credentialsProvider.getCredentials();
		s3 = new AmazonS3Client( credentials ); // 클라이언트 구성

		northEast1 = Region.getRegion( Regions.AP_NORTHEAST_1 );

		s3.setRegion( northEast1 );

		} catch (Exception e) {
			e.printStackTrace();

		}
	}





Posted by 긍뎡
,

List<String> list = new LinkedList<String>();


.....

import 를 엄한 걸 해줬으니깐 당연히...

java.util.LinkedList; 인지 확인해보좌

Posted by 긍뎡
,

간단한 코드인데 맨날 까먹느....



	Calendar cal = Calendar.getInstance();
			originalJSON = new File("/Users/Jane/Desktop/downloadPath/금천구모범음식점취소현황.json"); 
			// 확장자 확인
			int index = originalJSON.getName().lastIndexOf( "." );
			String extension = originalJSON.getName().substring( index );
			System.out.println( extension );
그리고 csv 파일로 변환해야 하기 때문에
파일 이름부터 바꿔주기



String savePath = saveDirectory + "convertingFrom"+
originalJSON.getName().substring( 0, index )+ fileType.getExtension()

하믄 파일 이름 바꿔주고 확장자도 바꿔준다.

여러 확장자를 가진 파일로 변환할 수 있게 하기 위해서 

enum으로 선언해 놓은 FileType fileType 변수를 이용...

근데 csv로만 쓸거 같음ㅋㅋㅋ .csv 해도 됐을텐뎈ㅋ,,또로로호로로로오로


Posted by 긍뎡
,

Gson의 JsonWriter 를 사용해서

ResultSet 받아올 때마다 바로 json 형식으로 Local 에 파일로 떨구기.


JSONFile = new File(savePath);
			buffer = new BufferedWriter(new FileWriter(JSONFile));
			
			
			// 방법 1. 파일 크기 : 95,784 KB
			//JsonWriter writer = new JsonWriter(buffer);
			//-----------------------------------------------
			// 방법 2. 파일 크기 : 87,497 KB
			HashMap map = null;
			Gson gson = new Gson();
		
			while (rs.next()) {
				map = new HashMap();	// 되는 방법 1.
				
				//-----------------------------------------
				//writer.setLenient(true);				// 되는 방법 2.
				//writer.beginObject();					// 되는 방법 2.
				for (int i = 1; i <= meta.getColumnCount(); i++) {
					
					map.put(meta.getColumnName(i), rs.getObject(i));	// 되는 방법 1.
					//------------------------------------------
					//writer.name(meta.getColumnName(i));				// 되는 방법 2.
					//writer.value(rs.getObject(i).toString());			// 되는 방법 2.
		
				}

				buffer.write(gson.toJson(map));	// 되는 방법 1.
				buffer.newLine();				// 되는 방법 1.
				//-----------------------------------
				//buffer.newLine();				// 되는 방법 2.
				//writer.endObject();			// 되는 방법 2.
				
			}
			buffer.close();// 되는 방법 1.
			//-----------------------------
		//writer.close(); // 되는 방법 2.

두 번째 JsonWriter 객체를 이용했을 때 beginObject, endObject 를 알맞은 곳에서 잘 썼다고 생각했는데... 

" gson JSON must have only one top-level value." 라는 extecption 발생했땀...

코드를 보니 boolean 형식의 lenient 값이 true 여야 하는데 어떨 때 true 가 되느냐!!!!!!!!

.....는 잘 모르겠고 

강제 set true..writer.setLenient(true); ㅎㅎ

 /**
   * Inserts any necessary separators and whitespace before a literal value,
   * inline array, or inline object. Also adjusts the stack to expect either a
   * closing bracket or another element.
   *
   * @param root true if the value is a new array or object, the two values
   *     permitted as top-level elements.
   */
  @SuppressWarnings("fallthrough")
  private void beforeValue(boolean root) throws IOException {
    switch (peek()) {
    case NONEMPTY_DOCUMENT:
      if (!lenient) {
        throw new IllegalStateException(
            "JSON must have only one top-level value.");
      }


근데 파일크기가 어마어마한데.. JsonWriter 방식이 10000kb 더 잡아먹길래.. Gson 이용하는 걸로..

크기를 더 줄일 수 있는 방법 알아봐야 할둣

':D > Java' 카테고리의 다른 글

[JAVA] Tokenizer 예제  (0) 2016.10.05
List 선언 시 에러...  (0) 2015.03.04
[JAVA] 파일 확장자 추출  (0) 2015.02.17
TimeStamp로 고유한 파일이름 지정하기  (0) 2015.01.23
Java Object를 JSON 형태로 바꿔주는 API -GSON  (0) 2014.12.22
Posted by 긍뎡
,