[Google App Engine] Maven 프로젝트로 생성하기 + 스프링 + Jackson
New Maven Project 생성
이클립스 maven 플러그인을 설치합니다.
http://download.eclipse.org/technology/m2e/releases
New Maven Project 에서 Configure 버튼을 클릭하여 새로운 카탈로그를 추가합니다.
maven
을 입력하여 검색합니다.Configure
를 선택합니다.Add Remote Catalog
를 선택하여 추가합니다.appengine
으로 필터링 하시고, appengine-skeleton-archetype
를 선택하고 완료를 누르면 뼈대가 완성됩니다.application-id
에 appspot.com에서 생성한 어플리케이션아이디를 입력합니다. 나중에 변경하셔도 됩니다.
뼈대가 완성이 되면
pom.xml
파일에 Plugin execution not covered by lifecycle configuration 에러가 발생하지만, 그냥 무시하고 진행합니다. 에러나는 부분인 <phase>compile</phase>
이곳을 주석처리하면 에러는 사라집니다.
maven → build
를 선택합니다.
DevAppServer
는 로컬에서 실행해보는 것이며, UpdateApplication
은 구글 클라우드 서버에 업로드 하는 것입니다. 위의 화면은 메이븐 프로젝트를 여러개 생성하였기에 여러개의 메이븐 빌드정보가 있는 것입니다.
[INFO] 정보: Module instance default is running at http://localhost:8080/ [INFO] 정보: The admin console is running at http://localhost:8080/_ah/admin [INFO] 정보: Dev App Server is now running
정상적으로 실행이 되면 위와 같은 메시지가 보이게 됩니다.
pom.xml
Spring
dependencies에 스프링과 JSON 사용을 위한 Jackson 을 추가합니다.
<!-- Spring 3 dependencies --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- Jackson JSON Mapper --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>${jackson.version}</version> </dependency>
properties 에도 내용을 추가합니다.
<properties> <appengine.app.version>1</appengine.app.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>3.2.2.RELEASE</spring.version> <jackson.version>1.9.10</jackson.version> <jdk.version>1.7</jdk.version> </properties>
web.xml 작성
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Spring Web MVC Application</display-name> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>
Error 406
스프링에서 json 반환시 406 에러가 생긴다면 다음을 확인해봐야 합니다.
- jackson 라이브러리가 classpath에 추가되어 있는가
- <mvc:annotation-driven /> 이 추가되어 있는가
- getter 함수가 존재하는가
Upload
프로젝트 루트폴더에서 커맨드창을 실행합니다.
mvn appengine:update
를 입력하여 진행합니다.
Please enter code:
부분에, 웹 브라우저에서 나오게 될 코드 값을 입력합니다.
동의
를 누르고 진행하면, 코드가 나옵니다.
웹 브라우저가 열리고, 코드가 나오면, 커맨드창에 해당 코드를 입력하여 진행합니다.
위의 화면은 app_id
값을 변경하지 않고 진행하여, 해당 app_id 가 없다는 오류입니다.
어플리케이션 아이디 설정
appengine-web.xml
파일에서 설정합니다. <application> 태그
부분에 생성한 어플리케이션 정보를 입력합니다.
사용자 정보는 사용자/[계정]
폴더에 .appcfg_oauth2_tokens_java
파일명으로 저장됩니다. 처음에 입력한 코드에 따라서 사용자가 결정되기 때문에, 다른 사용자의 정보를 이용하기 위해서는 해당 파일을 변경해야 합니다.
Ref
'Programming > Google' 카테고리의 다른 글
[GAE] memcache Undefined variable error - python (0) | 2016.07.01 |
---|---|
[GAE] Static 파일 설정 (0) | 2015.12.02 |
[GAE] 파일 업로드 (0) | 2015.11.30 |
[GAE] 포트 사용중인 프로세스 종료 (0) | 2015.11.30 |
Google App Engine - INDEXES (0) | 2014.10.27 |
댓글