[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 |
댓글