문서 보기역링크PDF로 내보내기맨 위로 이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요. # [Google App Engine] Maven 프로젝트로 생성하기 + 스프링 + Jackson ## eclipse 설치 `https://www.eclipse.org/downloads/` 에서 다운받아서, 설치를 진행합니다. ## 플러그인 설치 ### Google Plugin for Eclipse `Eclipse Marketplace`에서 검색하여 설치합니다. 검색창에 `appengine`을 입력하여 검색합니다. `Google Plugin for Eclipse 4.3`을 설치합니다. `Install` 버튼을 클릭하여 설치를 진행합니다. ### Eclipse Color Theme 에디터 화면의 색을 변경합니다. 기호에 따라 설치하시면 됩니다. ### Maven Plugin Eclipse MARS 로 진행할 경우, maven 이 포함되어 있으므로 아래 내용을 필요 없습니다. <code> 이클립스 maven 플러그인을 설치합니다. `http://download.eclipse.org/technology/m2e/releases` </code> ## New Maven Project 생성 ### Maven 카탈로그 추가 New Maven Project 에서 Configure 버튼을 클릭하여 새로운 카탈로그를 추가합니다. ''http://repo1.maven.org/maven2/archetype-catalog.xml'' 검색창에서 ''maven''을 입력하여 검색합니다. ''Configure''를 선택합니다. ''Add Remote Catalog''를 선택하여 추가합니다. <code> http://repo1.maven.org/maven2/archetype-catalog.xml </code> ''appengine''으로 필터링 하시고, ''appengine-skeleton-archetype''를 선택하고 완료를 누르면 뼈대가 완성됩니다. ''application-id''에 appspot.com에서 생성한 어플리케이션아이디를 입력합니다. 나중에 변경하셔도 됩니다. 뼈대가 완성이 되면 ''pom.xml''파일에 Plugin execution not covered by lifecycle configuration 에러가 발생하지만, 그냥 무시하고 진행합니다. 에러나는 부분인 ''<phase>compile</phase>'' 이곳을 주석처리하면 에러는 사라집니다. ''maven → build'' 를 선택합니다. ''DevAppServer'' 는 로컬에서 실행해보는 것이며, ''UpdateApplication''은 구글 클라우드 서버에 업로드 하는 것입니다. 위의 화면은 메이븐 프로젝트를 여러개 생성하였기에 여러개의 메이븐 빌드정보가 있는 것입니다. <code> [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 </code> 정상적으로 실행이 되면 위와 같은 메시지가 보이게 됩니다. # pom.xml http://stackoverflow.com/questions/30159117/datanucleus-enchancer-cannot-instantiate-org-datanucleus-api-jdo-jdoadapter ## Spring dependencies에 스프링과 JSON 사용을 위한 Jackson 을 추가합니다. <code> <!-- 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> </code> properties 에도 내용을 추가합니다. <code> <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> </code> ## web.xml 작성 <code> <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> </code> ## 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 * http://wiki.gurubee.net/pages/viewpage.action?pageId=2457625 * http://babtingdev.tistory.com/337 * https://cloud.google.com/appengine/docs/java/tools/maven * http://stackoverflow.com/questions/6352208/how-to-solve-plugin-execution-not-covered-by-lifecycle-configuration-for-sprin open/maven-spring-jackson.txt 마지막으로 수정됨: 2020/06/02 09:25저자 127.0.0.1