哇,玩!框架有很多静态方法.在我上学的地方,我们被告知永远不会使用任何静力学,但玩!使用它就像没有明天一样.那是不是很好?如果是这样,为什么?
我们(7个人和我)正计划使用Play!涉及Web应用程序的项目框架.我们决定玩Play!因为它看起来很有趣,我们所有人都已经知道Java并且任务很难,所以我们想要专注于实际的任务,而不是学习如何用不同的语言编程.
我们总是说,但是,永远不要用"静在我们开发的任何Java程序,但是当我看着玩!......好吧......大约一半的方法都是静态的.</夸张>
我想,至少,我们可以使用单例对象(通过使用Scala,例如^^)来编程我们的项目,但我非常担心框架本身实际上有多少静态.
那么,我应该关注这个吗?玩的方式!开发人员编程使它成为所有这些静态不会造成问题的?
(例如,这个主题有一个关于为什么要不惜一切代价避免静态成员的咆哮.)
我们有一个Play 1.2.4应用程序,我们得到了Jenkins(在Ubuntu上)的应用程序.我们遇到了Cobertura的问题.
运行测试(成功)后,我们偶尔会收到以下错误:
---------------------------------------
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at net.sourceforge.cobertura.util.FileLocker.lock(FileLocker.java:124)
at play.modules.cobertura.CoberturaPlugin$CoberturaPluginShutdownThread.run(Unknown Source)
Caused by: java.nio.channels.OverlappingFileLockException
at sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1166)
at sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1068)
at sun.nio.ch.FileChannelImpl.lock(FileChannelImpl.java:824)
at java.nio.channels.FileChannel.lock(FileChannel.java:860)
... 6 more
---------------------------------------
Unable to get lock on /var/lib/jenkins/jobs/project/workspace/cobertura.ser.lock: null
This is known to happen on Linux kernel 2.6.20.
Make sure cobertura.jar is in the root classpath of the jvm
process running the instrumented code. If the instrumented code
is running in a web server, this means cobertura.jar should …
Run Code Online (Sandbox Code Playgroud) 有时需要扩展框架.有时需要挂钩请求/响应生命周期,例如参数绑定或编写安全模块.怎么可以在playframework 1.x中完成?
已经问了类似的问题,但删除了它,因为我认为我修好了,但我错了.
我在我的一个Web项目中使用Play框架.Play不会呈现主页或不返回某些静态内容文件.
第一个屏幕截图显示了firebug控制台,当服务主页时,网站的加载停留在开头.
第二个屏幕截图显示fiddler控制台,当2个静态资源未加载时.
最初应用程序运行正常,它必须工作5-7天,我可以看到这个问题.它很难重现,它发生在15次中,我必须删除缓存数据并重新加载页面.(在FF中按CRTL-F5).问题可以在不同机器和操作系统的大多数浏览器中重现.最初,我认为托管服务提供商存在一些问题.但我已经改变了它,问题还没有消失.
该剧的版本是1.2.5.尝试了1.2.2.Play在CentOS-5-32位上作为独立服务器运行.
我怀疑,Netty
Play框架使用了一些问题.Play使用Netty 3.5.7最终jar.
cd /proc/28761/fd
ls -l | wc -l
337
Run Code Online (Sandbox Code Playgroud)
几天打开的文件描述符的数量从140增加到350.注意,开头和后面的网站平均负载是相同的.
我可以看到很多进程打开的套接字,以后不会发布.
lrwx------ 1 root root 64 Nov 11 10:34 300 -> socket:[1079566]
lrwx------ 1 root root 64 Nov 11 10:34 301 -> socket:[1079568]
lrwx------ 1 root root 64 Nov 11 10:34 302 -> socket:[1149958]
lrwx------ 1 root root 64 Nov 11 10:34 303 -> socket:[1160807]
lrwx------ 1 root root 64 Nov 11 10:34 304 -> socket:[1160605]
lrwx------ 1 root root 64 …
Run Code Online (Sandbox Code Playgroud) Play中是否有一种方法可以注释路由,以通知某些路段/组路由仅在dev或prod模式下可用
我的项目需要使用一些第三方罐子.我假设我将这些放在我项目的lib /目录中,但是我在哪里配置Play以将它们添加到类路径中?
我正在Eclipse中开发,我知道我可以将它们添加到Eclipse项目的构建路径中,但这并不一定会让Play在运行时引用它们.
我在lib目录中复制了一个jar文件
我想运行"play deps --sync"而不删除这个jar.
我已经查看了依赖文件文档,但无法弄清楚如何做到这一点
任何的想法?
- 编辑
我刚刚找到答案:http://groups.google.com/group/play-framework/browse_thread/thread/b54e4e25ae49161b
在问这里之前,我会更多地谷歌
我只想在开发模式下通过HTTPS运行Play Framework ,我使用以下配置来完成:
https.port=9443
trustmanager.algorithm=JKS
keystore.file=conf/certificate.jks
keystore.password=password
certificate.password=password
application.mode=dev
%prodenv.application.mode=prod
Run Code Online (Sandbox Code Playgroud)
这在我运行时有效play run
但在生产中我们运行play run --%prodenv
并且我想禁用HTTPS,因为HTTPS由Nginx处理.我迷失了如何做到这一点.我想通过配置文件而不是通过额外的命令行参数来做到这一点,因为它无视在application.conf
文件中包含所有应用程序配置的目的.
我在Jedis库的帮助下开始在我的项目中使用Redis.一切正常,但现在我遇到了一个问题,我的功能测试要求Redis在我的持续集成中要避免.做这个的最好方式是什么?
在游戏中,如果从控制器的公共方法调用,则始终遵循Redirect-After-Post-Pattern.在大多数情况下,这是一种很好的行为,但有时它可能是令人讨厌的.所以我试着找出它在play 1.1中是如何工作的!:基本是一些字节码增强,这是在play.classloading.enhancers.ControllersEnhancer
.在那里你可以发现仍然存在一些默认行为的例外:
play.mvc
,例如Before-annotation.ByPass
-Annotation 注释您的操作,此Annotation必须是内部类,因此名称endsWith $ByPass
.如果您总是想要抑制重定向,那么这两种解决方案都可以.但是如果你只想在特殊情况下这样做呢?然后你可以打电话ControllerInstrumentation.initActionCall()
.
我没有找到关于它的描述,我只是分析代码.那么我的结论是正确的还是有任何缺点?