- notice 스킨변경~
[앱엔진]검색결과, 5건
- [Java] NetBeans 6.8에서 Google App Engine 애플리케이션 개발하기 2010/01/22
- [Spring/Flex] Spring BlazeDS Integration AppEngine위에서 간단히 구동 후기 2009/09/28 (4)
- [Google App Engine JAVA] Spring MVC를 이용한 방명록 예제(기존예제 변환-_-) 2009/05/02 (4)
- [Google App Engine] 자바용 구글 앱엔진을 위한 Google Plugin for Eclipse 설치후기. 2009/04/27 (4)
- [Google App Engine] 구글 앱 엔진 셋팅 환경설정 후기-_-; 2009/03/01 (2)
[Java] NetBeans 6.8에서 Google App Engine 애플리케이션 개발하기
Posted in 자바(Java) // Posted at 2010/01/22 12:15하지만, 구글에서 공식적으로 제공하는 플러그인이 아니라 누가 만든 것 같네요.
이곳에서 보고 설치 및 샘플을 실행할 수 있습니다.
아.....이건 상관없는 그림이지만, 그림을 보면 볼수록 왠지 슬퍼지는데요.
오늘 권순선님 미투데이에서 발견했습니다-_-
Java를 낳고 돌아가신 Sun이군요-_- 오라클이 인수하는 걸 EC에서 승인했다더군요.
암튼 대충 따라해보면...
1. 플러그인 설치
Tools -> Plugins -> Settings -> Add -> Name에 App Engine이라고 하고, URL에 아래 주소를 입력
그러면 Available Plugins에 5개의 Google App Engine플러그인이 생김. 체크해서 설치 고고싱
2. SDK다운로드
여기서 자바용으로 받아서 적당한 폴더에 풀어주면 됨 ㄷㄷ
3. Google App Engine 서버 설정
넷빈즈에서 Services탭에서 Servers에서 마우스 오른쪽버튼 클릭 후 Add Server선택
Google App Engine을 선택한 뒤, 위에서 받은 sdk폴더 경로 지정. 포트는 맘에 드는걸로 하면 끝남
4. 새로운 프로젝트 생성
New 프로젝트 -> Java Web -> Web Application -> Project Name은 HelloGoogleAppEngine -> Server는 Google App Engine -> Finish하면 끝남.
F6을 눌러서 실행하면 Hello World 볼 수 있음 ㄷㄷ
5. 배포
배포 시 Web Pages -> WEB-INF -> appengine-web.xml파일에서 Application Name을 자신이 얻은 Name으로 수정하고 해야함.
그런데 배포 시 약간 문제가 있음.
아무것도 안건드렸다고해도 이런 에러를 보게 될 꺼임.
javac파일을 java\bin에서 찾는 것 같음. 거기엔 javac.exe파일이 없음. java.home위치를 수정하는 법을 몰라서, 검색해보니 그냥 그 폴더에 javac.exe를 복사하는 거임. tools.jar파일도 lib폴더에 같이 복사해야함 ㄷㄷ
제꺼기준으로
C:\Program Files\Java\jdk1.6.0_17\bin\javac.exe파일을 -> C:\Program Files\Java\jre6\bin에 복사.
C:\Program Files\Java\jdk1.6.0_17\lib\tools.jar파일을 -> C:\Program Files\Java\jre6\lib\폴더에 복사.
그러면 잘 될꺼임.
ps. 결론은.......그냥 이클립스 플러그인 쓰는 게 나아요. 그건 GWT연동도 되거든요-_- 이런 짓을 하면서 까지 넷빈즈에서 개발하고 싶진 않은 듯. 공식으로 지원하는 플러그인으로....-_- 이클립스가 짱인 듯.
New 프로젝트 -> Java Web -> Web Application -> Project Name은 HelloGoogleAppEngine -> Server는 Google App Engine -> Finish하면 끝남.
F6을 눌러서 실행하면 Hello World 볼 수 있음 ㄷㄷ
5. 배포
배포 시 Web Pages -> WEB-INF -> appengine-web.xml파일에서 Application Name을 자신이 얻은 Name으로 수정하고 해야함.
그런데 배포 시 약간 문제가 있음.
아무것도 안건드렸다고해도 이런 에러를 보게 될 꺼임.
java.lang.IllegalStateException: cannot find javac executable based on java.home, tried "C:\Program Files\Java\jre6\bin\javac.exe" and "C:\Program Files\Java\bin\javac.exe"
Unable to update app: cannot find javac executable based on java.home, tried "C:\Program Files\Java\jre6\bin\javac.exe" and "C:\Program Files\Java\bin\javac.exe"
Please see the logs [C:\Users\mudchobo\AppData\Local\Temp\appcfg7950519452562723725.log] for further information.javac파일을 java\bin에서 찾는 것 같음. 거기엔 javac.exe파일이 없음. java.home위치를 수정하는 법을 몰라서, 검색해보니 그냥 그 폴더에 javac.exe를 복사하는 거임. tools.jar파일도 lib폴더에 같이 복사해야함 ㄷㄷ
제꺼기준으로
C:\Program Files\Java\jdk1.6.0_17\bin\javac.exe파일을 -> C:\Program Files\Java\jre6\bin에 복사.
C:\Program Files\Java\jdk1.6.0_17\lib\tools.jar파일을 -> C:\Program Files\Java\jre6\lib\폴더에 복사.
그러면 잘 될꺼임.
ps. 결론은.......그냥 이클립스 플러그인 쓰는 게 나아요. 그건 GWT연동도 되거든요-_- 이런 짓을 하면서 까지 넷빈즈에서 개발하고 싶진 않은 듯. 공식으로 지원하는 플러그인으로....-_- 이클립스가 짱인 듯.
No Comment
[Spring/Flex] Spring BlazeDS Integration AppEngine위에서 간단히 구동 후기
Posted in 스프링(Spring) // Posted at 2009/09/28 01:26이번 Spring BlazeDS Integration 1.0.1릴리즈 기념과 Spring교육 끝난 기념으로 간만에 삽질해봤습니다.
하지만, messaging 등의 심화적인 것은 못해보구요. 우선 서비스를 가져오는지만 해봤습니다.
삽질환경
- IDE
Eclipse3.5와 구글앱앤진 플러그인 - http://code.google.com/intl/ko-KR/eclipse/docs/download.html
Flex Builder 3.0.2
JDK 1.6.0 U14
- 라이브러리
Spring Framework 2.5.6
BlazeDS 3.2.0.3978
Spring BlazeDS Integration 1.0.1
Jackson 1.2.0
Cglib 2.1.3
1. App Engine 프로젝트 생성
프로젝트 생성하고 나서 라이브러리들을 다 복사합니다. 저는 아래와 같이 라이브러리를 복사했습니다.
기존App Engine lib, spring.jar, spring-webmvc.jar, blazeds.war에 있는 lib, jackson-core-lgpl-1.2.0.jar, jackson-mapper-lgpl-1.2.0.jar, cglib-nodep-2.1_3.jar, org.springframework.flex-1.0.1.RELEASE.jar
그리고, appengine-web.xml파일에 한줄 추가합니다.
<sessions-enabled>true</sessions-enabled>이거 필요한건지는 잘 모르겠군요-_-
WEB-INF폴더아래 blazeds.war파일에 들어있는 flex폴더를 복사합니다(*-config.xml의 파일이 있는 것)
2. 서비스 클래스 생성
이제 서비스를 만들어봅시다. 초간단 헬로우서비스를-_-
src폴더에 만들어봅시다. 전 com.mudchobo.springblazedsserver.service패키지에 HelloService클래스를 생성했음!
HelloService.java
package com.mudchobo.springblazedsserver.service;
public class HelloService {
public String sayHello(String name) {
return "Hello, " + name;
}
}3. 설정파일 생성 및 설정
스프링관련 설정을 해야해요. web.xml에서 디폴트로 설정된 servlet설정을 지우고 아래를 추가
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/config/*-context.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- SpringDispatcherServlet -->
<servlet>
<servlet-name>flex</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>flex</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>flex라는 이름의 서블릿을 만들었으니 스프링 설정파일이름인 flex-servlet.xml을 생성합니다.
flex-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:flex="http://www.springframework.org/schema/flex"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/flex
http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">
<flex:message-broker />
<flex:remoting-destination ref="helloService"/>
</beans>flex라는 네임스페이스를 제공하는데요. <flex:message-broker />이 한줄로 모든 설정이 되어버립니다. M1 삽질했을 때에는 네임스페이스 없어서 bean써주고, 다 설정했던 기억이 나네요. 네임스페이스로 한줄로-_-
remoting-destination태그는 destination을 설정하는 건데, 해당 bean을 ref하면 해당 bean이름으로 destination으로 flex에서 가져올 수 있어요.
그럼 서비스를 설정할 설정파일을 생성해봅시다. configlocation을 /config/*-context.xml을 잡았는데, /config/services-context.xml파일을 만들어봅시다^^
services-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="helloService" class="com.mudchobo.springblazedsserver.service.HelloService" />
</beans>방금 만든 HelloService를 bean으로 설정.
마지막으로 flex/services-config.xml에서 default-channels를 추가합시다.
<services>
<service-include file-path="remoting-config.xml" />
<service-include file-path="proxy-config.xml" />
<service-include file-path="messaging-config.xml" />
<default-channels>
<channel ref="my-amf"/>
</default-channels>
</services>그리고 이것도 추가해야해요.
<system>
<manageable>false</manageable>
....
</system>이거 추가안하면 앱엔진에서 이런 에러로그를 뿜음-_-
org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_messageBrokerDefaultHandlerMapping': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_messageBroker': Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanInitializationException: MessageBroker initialization failed; nested exception is java.lang.NoClassDefFoundError: java.lang.management.ManagementFactory is a restricted class. Please see the Google App Engine developer's guide for more details.
관리자 기능이라고 하는 것 같은데, 정확히 뭔지는 잘 모르겠지만, 끄면 잘 됩니다-_-
4. 클라이언트 프로젝트 생성
flex project를 생성할 때 이렇게 생성해주면 편합니다.
Flex Project선택 -> Project name쓰고, Application server type은 J2EE, Create combined Java~~는 체크해제, Use remote object access service는 체크하고, Next.
그 다음 Serverlocation 셋팅을 Root folder는 AppEngine의 war폴더를 지정해주면 되구요.
Root URL은 앱엔진 기본 실행 경로인 http://localhost:8080하면 되구요. Context root는 /로 지정하면 됩니다.
그러면 디버그나 Run시에 localhost:8080/프로젝트명/프로젝트명.html로 실행이 돼요.
코드는
SpringBlazeDSClient.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:RemoteObject id="srv" destination="helloService" />
<mx:TextInput id="inputName" />
<mx:Button label="전송" id="btnConfirm" click="srv.sayHello(inputName.text)" />
<mx:Label id="labelResult" text="{srv.sayHello.lastResult}" />
</mx:Application>이 코드 너무 활용하는 것 같아-_- 암튼 destination은 helloService로 설정했기 때문에 이걸로 지정하면 됩니다.
5. 이제 배포 및 실행
이제 swf파일도 appengine프로젝트에 생성하고, AppEngine을 배포하고 실행하면 또다른 에러를 보실 수 있습니다-_-
[RPC Fault faultString="Detected duplicate HTTP-based FlexSessions, generally due to the remote host disabling session cookies. Session cookies must be enabled to manage the client connection correctly." faultCode="Server.Processing.DuplicateSessionDetected" faultDetail="null"]
와....미쳐버립니다. 이건 뭔가....검색해보니 앱엔진이 여러 서블릿배포할 때 1개의 클라이언트 정보를 동일하게 배포를 해서 어쩌구 라고 번역기를 돌리니 써있네요-_- 이걸 픽스한 jar파일이 돌아다닙니다-_-
기존 flex-messaging-core.jar파일을 위 파일로 교체해주면 되더군요.
이제 실행하면 잘 될겁니다.
실행주소입니다.
http://mudchobo1.appspot.com/SpringBlazeDSClient/SpringBlazeDSClient.html


스크린샷.....
참고사이트
http://www.adobe.com/jp/devnet/flex/articles/google_app_eng_w_beazeds_p2.html
http://martinzoldano.blogspot.com/2009/04/appengine-adobe-blazeds-fix.html
Tags adboe,
app enigne,
blazeds,
flash,
flex,
google,
spring,
springframework,
구글,
블레이즈디에스,
스프링,
스프링프레임워크,
앱엔진,
어도비,
플래시,
플렉스
-
빠방
좋은 예제 감사드립니다 (꾸벅)
덕분에 spring blazeds intergration 1.0.1과 ibatis 연동에 성공했습니다.
이전에 올려주신 연동예제와 새로 릴리즈된 1.0.1 예제가 아니었으면 짧은 영어실력때문에 도저히 알아먹지 못해고 포기해버렸을꺼에요 ㅠㅠ -
-
-
[Google App Engine JAVA] Spring MVC를 이용한 방명록 예제(기존예제 변환-_-)
Posted in 스프링(Spring) // Posted at 2009/05/02 00:15놀랍게도 잘 되네요. 하는 도중 약간의 혈압이 상승했지만요-_-
우선 샘플주소입니다.
http://springguestbook.appspot.com
소스코드 주소입니다. trunk/SpringGuestBook입니다^^
http://my-svn.assembla.com/svn/mudchobosample
마치...그냥 앱엔진에서 제공하는 샘플이랑 같아보여서 사기를 치는 것 같지만, Model2방식의 예제입니다ㅠ
우선 하면서 가장 처음에 겪는 문제점입니다.
Your Web Application Project must be configured to use a JDK in order to use JSPs.
JSP를 쓰려면 jdk를 설정해야한다는 뜻인데요. 보통 JDK를 깔고, 이클립스를 실행하면 디폴트로 JRE가 잡혀있어요. 이걸 JDK로 추가해서 바꿔주시면 돼요.
이클립스에서 Window -> Preferences -> Java -> Installed JREs선택.
Add -> Standard VM -> JRE home에서 Directory선택해서 JDK주소를 찾으세요.
디폴트로 설치하셨다면 C:\Program Files\Java\jdk1.6.0_12 여기에 있을겁니다.
폴더만 선택하고, Finsh를 누르면 추가가 되었습니다. 체크박스를 jdk로 옮겨주세요. 그러면 저 위에 에러 안날꺼에요.
그다음으로 겪는 문제점은....-_- 앱엔진에서 지원안하는 클래스를 쓰는 곳이 있는 것 같아요.
spring mvc를 사용하려면 spring.jar하고 spring-webmvc.jar 두개만 있으면 되는데요. 이거 두개 lib폴더에 넣어놓고 서버에 디플로이 시키면
exception is java.lang.NoClassDefFoundError: javax/naming/NamingExceptionApp engine로그를 볼 수 있는데, 거기서 로그를 보면 클래스를 찾을 수 없다고 나와요. spring-orm.jar에서 쓰는 것 같더라구요. 어차피 구글앱엔진은 jdo만 지원해서 jdo only라이브러리가 있습니다-_- 그걸로 바꿔주시면 돼요.
전 라이브러리복사할 때
spring-beans.jar, spring-context-support.jar, spring-context.jar, spring-core.jar, spring-jdbc.jar, spring-orm-jdo-only-2.5.6.jar, spring-test.jar, spring-tx.jar, spring-web.jar, spring-webmvc.jar를 복사했네요.
여기서 spring-orm-jdo-only-2.5.6.jar는 저도 어디서 받은거라.....-_-
그러고 디플로이하면 잘 됩니다.
또 한가지 문제점은 eclipse에서 제공하는 dynamic web project에서는 WEB-INF/lib에 library파일을 복사하면 자동으로 클래스를 코드힌트로 쓸 수 있는데, 이놈은 코드힌트를 할 수 없어요-_- 그래서 수동으로 추가를 해줘야해요.
프로젝트 이름에 Properties를 선택하고, Java Build Path에서 Add JARs에서 추가한 spring파일 등을 선택해서 추가해줘야 에러가 안나네요^^(이건 뭐 다른 방법이 있을 지도.....-_-저에게 최선의 방법이였다는 ㅠ)
또 JDO라는 걸 전혀 몰라서 조금 고생했는데, Hibernate같은 orm이더군요. 사실 아직도 잘 모르겠습니다. 좀 더 알아봐야할 것 같네요. orm하면 Hibernate랑 JPA밖에 없는 줄 알았는데, 뭐 디게 많네요ㅠ
또.....-_- localhost에서 Datastore테스트를 하면 war/WEB-INF/appengine-generated라는 폴더가 생겨요. 디비가 저장되는 것 같은데, 저게 있는 상태에서 디플로이하면 안돼요. 지우고 하면 됩니다.
또 이런저런 문제가 있었는데, 기억이 안나네요. 그래도 정말 대단한 것 같습니다. 대세는 클라우드-_-
참고자료
http://peterbacklund.blogspot.com/2009/04/running-spring-on-google-app-engine.html
http://groups.google.com/group/google-appengine-java/browse_thread/thread/f1a541fe52e172dd
-
-
-
-
머드초보
저기assembla는 svn이랑 trac같은 개발환경을 제공하는데요.
public공간으로 만들면 무료이고, private공간을 만들면 돈들어가요.
다 오픈하면 무료에요 ^^
-
[Google App Engine] 자바용 구글 앱엔진을 위한 Google Plugin for Eclipse 설치후기.
Posted in 자바(Java) // Posted at 2009/04/27 23:43전 세계적으로 가장 인기있는(?) 언어인 자바를 지원하다니 대단합니다-_-(사실...파이썬 보다 자바나 PHP를 먼저 지원했어야 했을 것 같은데-_- 그때 얘기를 들어보니 앱엔진 담당하는 사람이 파이썬 전문가라는 얘기를 들은 것 같군요-_-)
거기에 더 대단한 것은 파이썬 같은 경우에는 툴 같은 것이 없었는데, 이번엔 이클립스를 이용한 툴까지 제공해줍니다. 구글플러그인인데요. App Engine JAVA SDK랑 덤으로 Web Toolkit SDK까지 깔아주는군요. 게다가 구글 앱엔진에 쉽게 배포까지 할 수 있습니다.
이클립스 설치주소 : http://dl.google.com/eclipse/plugin/3.4 (3.3버전은 뒤에 3.3-_-)
참조문서 : http://code.google.com/intl/ko-KR/appengine/docs/java/tools/eclipse.html
설치를 하게 되면 File -> New -> Other에 보시면 Google이라는 폴더에 Web Application Project라는 프로젝트가 있습니다. 이걸 선택하게 되면 아래와 같은 화면이 나옵니다.


프로젝트가 완성이 되면 익숙한(?) 폴더구조를 볼 수 있습니다. src는 java소스부분이 들어가는 곳이고, war부분은 WebContent부분이군요. 안에 더욱 익숙한 WEB-INF도 있어요-_- 라이브러리 마구 처박아도 되나-_- web.xml도 있군요.
자 그럼, 손쉬운 배포를 해봅시다. 갓난애기도 할 수 있는 앱엔진 배포!(과연..-_-)
war -> WEB-INF폴더에 appengine-web.xml파일을 엽니다.
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>mudchobo</application>
<version>1</version>
<!-- Configure java.util.logging -->
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
</system-properties>
</appengine-web-app><application>부분에 자신이 애플리케이션 생성 시 입력한 Application Identifier를 입력합니다.
그리고, 프로젝트에 대고, 마우스오른쪽 버튼을 누르면 Google이라는 메뉴가 있습니다.
Deploy to App Enigne이라는 메뉴를 선택합니다.

http://mudchobo.appspot.com/ 여기에 배포가 되었습니다.
Spring 등의 라이브러리도 다 되는거겠죠?-_- 이번 연휴에 삽질을 해봐야겠습니다.
PS. 혹시나 파일의 용량제한이 있나테스트해봤더니 10메가 이상파일은 안올라가네요.
Unable to upload app: Found a file too large to upload: "C:\Users\mudchobo\AppData\Local\Temp\appcfg3803788145857696233.tmp\Aptana Studio.zip". Must be under 10000000 bytes.
-
지돌스타
이런게 있는지 처음 알았군요.
구글의 리소스를 내가 직접 사용하는 것 같은 애플리케이션을 만들 수 있다는것에 꽤 흥미를 느끼게 되는군요. 내용 잘 봤습니다.-
머드초보
전에 구글코리아에서 설명을 들었을 때
구글에서 사용하는 서비스와 동일한 것이라고 하더군요.
구글은 언제나 개발자를 놀래키죠-_-
-
-
-

Create an Application을 클릭하면 아래와 같은 화면이 나옵니다.

보내고 나면 애플리케이션을 만들 수 있는데요. 우선 Application Identifier:에유니크한 이름을 적습니다. 여기서좀 이상한 점이......분명 available이라고 해놓고, 등록하려고 하면 이미 사용하고 있다고 나오는 경우가 있더라구요. sosiage라고 등록하려고 하니 그렇더라구요-_-; 이 app id는 한번 등록하면 바꿀 수 없구요. 총 10개의 애플리케이션을 만들 수 있습니다. 더 쓰고 싶으면 돈내라 이건가.....
애플리케이션을 생성했으면 이제 개발툴을 설치해야합니다.
http://code.google.com/intl/ko-KR/appengine/downloads.html 이곳에 가면 다운로드할 수 있는데, 분명 저번 세미나에서 보여줬던 관리툴같은 게 있었던 것 같은데, Mac OSX용만 있나봅니다 ㅠ
아.....이걸 설치하기전에 파이썬부터 설치해야합니다.
http://www.python.org/download/
안정적인 버전이 2개가 있는데, 2.6.1과 3.0.1이 있네요.
3.0.1을 설치하면 안됩니다-_-; 2.6.1버전을 설치해야합니다. 설치는 그냥 다음신공으로 설치할 수 있어요. 쉬워요!
그 다음 개발툴을 설치하면 됩니다.
그리고 난 다음에 데모를 실행해서 잘 되는지 확인해보면 됩니다.
시작 -> 실행 -> cmd를 열고......디폴트로 설치했다면 이곳에 데모가 있을 겁니다.
cd C:\Program Files\Google\google_appengine\demos
dev_appserver.py guestbook/이렇게 실행하면 INFO 2009-03-01 05:08:50,332 dev_appserver_main.py] Running application guestbook on port 8080: http://localhost:8080
웹브라우저에서 http://localhost:8080을 입력하면 초간단 방명록이 실행되고 있을겁니다-_-;
PS. python이라는 언어가 참 간결하고 좋긴한데, 전.....개인적으로 다른 언어도 지원했으면 좋겠네요-_-;
-
저기 물어볼게잇는데요
구글 엔진 할때 핸드폰인증받는데
인증받을수없다고하는데 제가 탈퇴햇다가 다시가입햇거든요
어떻게안되나요? -


flex-messaging-core-FIXED_1.jar