PLAY2.0框架快速入门
//////////////////////////
http://www.playframework.com/
http://www.playframework.org/已经被废弃
Play Version:2.3.1
The Play team is pleased to announce the release of Play 2.3.0!
What’s new inPlay2.3
Introducing the activator command. You can useactivator exactly like you would use play, but Activator brings new features too. (More about the Activator change.)
Better tooling for static assets.Play now uses sbt-web which gives faster asset processing, more features, and better extensibility.
Support forJava 8 (and continued support for Java 6 and 7).
BetterJava performance. Simple Java controllers give 40–90% better throughput. (Thanks toYourKit for sponsoring licenses.)
Support forScala 2.11 (and continued support for Scala 2.10).
Anorm enhancements: SQL string interpolation, multi-value parameters, new types, and more.
Web Services enhancements: separate client, SSL configuration, and more.
Play templates have become Twirl templates: separate project, new sbt plugin, still excellent integration withPlay
Actors for WebSockets
Custom SSLEngine for HTTPS
Asset performance: faster serving, better caching.
One Result to rule them all: all the result types which were deprecated in 2.2 are now gone and only Result remains.
Lots of bug fixes. :)
For details see the Play2.3 Highlights and thePlay2.3 Migration Guide.
typesafe activator 1.2.3
installing
下载完整的zip文件,而不是min。
There are three ways to run activator:
1. Recommended: try `activator ui` to create a project in the UI
2. Use `activator new` to create a project on the command line
3. Load an existing project by re-running activator in a project directory
activator ui
[error] p.nettyException - Exception caught in Netty
java.lang.IllegalArgumentException: invalid version format
http://stackoverflow.com/questions/21667254/play-framework-2-2-1-https-fails-on-connection-attempt
keytool -genkey -alias MyKey -keyalg RSA -keysize 2048 -keystore keystore.jks play -Dhttps.port=9443 -Dhttps.keyStore=keystore.jks -Dhttps.keyStorePassword=password run
上面说使用这个命令就解决了问题。
我试过了
activator new my-first-app play-java
提示说找不到template,因为无法去访问某个地址。
于是设置了~/.activator/activatorconfig.txt
<span style="font-size:14px;"><span style="font-size:14px;"># This are the proxy settings we use for activator -Dhttp.proxyHost=localhost -Dhttp.proxyPort=8580 # Here we configure the hosts which should not go through the proxy. You should include your private network, if applicable. -Dhttp.nonProxyHosts="localhost|127.0.0.1|davidzhang-pc|192.168.0.104"</span></span>
cd my-first-app
activator
$run
出错
stackflow里面提到了解决方法,不能使用9000端口!org.jboss.netty.channel.ChannelException: Failed to bind to: /0.0.0.0:9000
$run 9001
<span style="font-size:14px;"><span style="font-size:14px;">[my-first-app] $ run 9001 --- (Running the application from SBT, auto-reloading is enabled) -- [info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9001 (Server started, use Ctrl+D to stop and go back to the console...)</span></span>
Available Template
<span style="font-size:14px;"><span style="font-size:14px;">E:\Workspaces\play>activator list-templates Fetching the latest list of templates... 七月 14, 2014 7:30:58 下午 com.amazonaws.http.HttpClientFactory createHttpClient 信息: Configuring Proxy. Proxy Host: localhost Proxy Port: 8xxx Featured Seed Templates: minimal-java minimal-scala play-java play-scala Featured Tutorial Templates: hello-akka hello-scala hello-slick-2.1 reactive-maps reactive-stocks Other Seed Templates: gilt-lib just-play-java just-play-scala play-silhouette-seed play-silhouette-seed-slick webjars-sample-play2 Other Tutorial Templates: activator-akka-cassandra activator-akka-scala-guice activator-akka-spray activator-akka-tracing activator-gilt-app activator-play-autosource-reactivemongo activator-scalding activator-spray-twitter agile-scala-android-example akka-callcenter akka-camel-cxf-weather akka-circuit-breaker-java akka-cluster-sharding-scala akka-clustering akka-custom-dispatcher akka-distributed-workers akka-distributed-workers-java akka-java-spring akka-persistence-event-sourcing akka-sample-camel-java akka-sample-camel-scala akka-sample-cluster-java akka-sample-cluster-scala akka-sample-fsm-java-lambda akka-sample-fsm-scala akka-sample-main-java akka-sample-main-java-lambda akka-sample-main-scala akka-sample-multi-node-scala akka-sample-persistence-java akka-sample-persistence-java-lambda akka-sample-persistence-scala akka-sample-remote-java akka-sample-remote-scala akka-scala-spring akka-spray-websocket akka-stream-scala akka-supervision akka-supervision-java-lambda akka-with-esper angular-seed-play atomic-scala-examples config-guice-akka-spray dart-akka-spray eventual finagle-quickstart hazelcast-spray-akka hello-akka-java8 hello-apache-spark hello-play-2_3-scala hello-play-backbone hello-play-java hello-play-scala hello-sbt hello-scala-2_11 hello-scala-eclipse hello-scaladin hello-scaloid hello-slick lolcode-dsl macroid-akka-pingpong macwire-activator matthiasn-sse-chat-template mirror modern-web-template play-2.3-highlights play-akka-angular-websocket play-akka-cluster-sample play-angular-require-seed play-angularjs-webapp-seed play-bigpipe-with-rxjava-hystrix play-cake play-example-form play-guice play-hbase play-iteratees play-java-spring play-mongo-knockout play-reactive-mongo play-scala-backbone-todo play-scalatest-subcut play-slick play-slick-advanced play-slick-bootstrap3 play-slick-quickstart play-spring-data-jpa play-sqlite play-tls-example play-web-portal play-websocket play-yeoman play2-crud-activator play2bars-squeryl PlayStartApp rabbitmq-akka-stream reactive-gen-easymda reactive-java8-play reactive-maps-java reactive-orientation reactive-scales reactive-stocks-java8 realtime-search redis-twitter-clone sbt-github-project-template sbt-jmh-seed sbt-native-package-server scala-phantom-types scala-testing scaldi-akka-example scaldi-play-example scalikejdbc-activator-template securesocial-slick-bootstrap3-sample six-minute-apps slick-android-example slick-codegen-customization-example slick-codegen-example slick-direct slick-direct-2.1 slick-multidb slick-multidb-2.1 slick-plainsql slick-plainsql-2.1 slick-testkit-example slick-testkit-example-2.1 snakeyard spark-in-action spark-streaming-scala spark-streaming-scala-akka spark-workshop spray-actor-per-request sse-chat-template-java tcp-async template-template test-patterns-scala tweetmap-java8 tweetmap-workshop vaadin-in-akka</span></span>
$console
scalasdk
////////////////////////
使用IDE调试debug play app:
step1:activator your application with a debug port
activator -jvm-debug 9999
step2:add a debug configuration in IDE
and in Eclipse right-click on the project and select Debug As, Debug Configurations. In the Debug Configurations dialog, right-click on Remote Java Application and select New. Change Port to 9999 and click Apply. From now on you can click on Debug to connect to the running application. Stopping the debugging session will not stop the server.
step3:run app listending a port
run
9001
step4:add breakpoints in play project app sourcecode
step5:input a url in a browser, test your web app:
http://localhost:9001
///////////////////////
Scala + Play + Sbt + Protractor = One Build
========================
一位朋友分享的项目
http://my.oschina.net/smeite/blog/184350
https://github.com/smeite/smeite
食美特的项目地址在 https://github.com/smeite/smeite 已经有好几个月没有更新了,感兴趣的朋友可以去玩玩。整个网站采用playframework2.1+slick+mysql做的架构,有 52个 数据表,前端js使用的是seajs 2.1 和淘宝前端aralejs javascript框架。网站的访问速度和压力都非常不错,做了很多优化,更兴趣的朋友可以去github上看看。
//////////////////
Play源代码分析:Server启动过程(play1.x)
-------------------------------------------
这是我要的模板
https://typesafe.com/activator/template/reactive-maps-java