我有Scala的Playframework 2项目(非常小).它使用Scala Anorm库.
我有这样的代码:
package models
..
import anorm.SqlParser._
...
val rowParser = scalar[Long]
Run Code Online (Sandbox Code Playgroud)
所以,我想看看标量方法的来源.试图附上我在plaframework源文件夹中的源代码,但IDEA只是吞下我的请求并且什么也没做.
我使用最新版本的IDEA和Scala插件.这可能是错误吗?
来自Akka的网站文档:
然后,这个主要方法将创建运行actor所需的基础结构,启动给定的主actor,并在主actor终止后安排整个应用程序关闭.因此,您将能够使用类似于以下的命令运行上述代码:
java -classpath akka.Main example.two.HelloWorld
那么,我如何从IntelliJ IDEA启动它呢?我还没有找到合适的窗口.
对AKKA的依赖已经在项目中:
<dependencies>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor_2.10</artifactId>
<version>2.2-M3</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
代码本身(你可以看到没有main(...)):
public class HelloWorld extends UntypedActor {
@Override
public void preStart() {
// create the greeter actor
final ActorRef greeter =
getContext().actorOf(Props.create(Greeter.class), "greeter");
// tell it to perform the greeting
greeter.tell(Greeter.Msg.GREET, getSelf());
}
@Override
public void onReceive(Object msg) {
if (msg == Greeter.Msg.DONE) {
// when the greeter is done, stop this actor and with it the application
getContext().stop(getSelf());
} else unhandled(msg); …Run Code Online (Sandbox Code Playgroud) 在这段代码中,我想增加index它以将它放到每个yield结果中.
var index=0
for(str <- splitToStrings(text) ) yield {
if (index != 0) index += 1 // but index is equal to `0` all the time
new Word(str, UNKNOWN_FORM, index )
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能改变index?那么实现这种逻辑的最佳方法是什么,试图简洁?
这是一项Jersey服务:
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Response service(@QueryParam("format") String format) {
if (format.equals("json")) {...}
return response;
}
Run Code Online (Sandbox Code Playgroud)
我想根据url param "format" 生成XML或JSON回复.
我的回复实例正在形成jaxb2
我知道如果在我的Java客户端/功能测试中使用此代码,我可能会得到xml或json回复:
String content = service.path("").queryParam("myparam", "myvalue").accept(MediaType.APPLICATION_XML).get(String.class);
Run Code Online (Sandbox Code Playgroud)
要么
String content = service.path("").queryParam("myparam", "myvalue").accept(MediaType.APPLICATION_JSON).get(String.class);
Run Code Online (Sandbox Code Playgroud)
但我需要根据url param这样做.
我有一个代码:
@Configuration
public class BeanSample {
@Bean(destroyMethod = "stop")
public SomeBean someBean() throws Exception {
return new SomeBean("somebean name1");
}
class SomeBean {
String name;
public SomeBean(String name) {
this.name = name;
}
public void stop() {
System.out.println("stop");
}
}
public static void main(String[] args) throws Exception {
BeanSample beanSample = new BeanSample();
SomeBean someBean1 = beanSample.someBean();
ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(
new String[] {"appContext.xml"});
SomeBean someBean2 = (SomeBean) appContext.getBean("someBean");
if (someBean1 == someBean2) System.out.println("OK");
}
}
Run Code Online (Sandbox Code Playgroud)
我期待,一旦我启动应用程序,BeanSample.getSomeBean()然后SomeBean开始由'someBean'提供.
现在我有一个错误:没有定义名为'someBean'的bean …
我使用Play Framework 2.0.4和Java + IntelliJ IDEA.
尝试从IDEA启动测试,并出现如下错误:
Class not found: "models.SoftwareTest"
Run Code Online (Sandbox Code Playgroud)
这是测试本身.
package models;
public class SoftwareTest {
@Test
public void findById() {
running(fakeApplication(), new Runnable() {
@Override
public void run() {
Software software1 = Software.find.byId(1L);
assertThat(software1.name).isEqualTo("Soft1");
assertThat(software1.description).isEqualTo("Description1");
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
任何人?
PS我已经清理了所有项目/常春藤文件,已从播放2.0.4切换到2.1 RC1并返回..它没有帮助.但它过去有一天工作.我在谷歌找到了很多关于此的记录,但还没有找到答案.
我也查看了这篇文章(与Ebean和测试有关):
http://blog.matthieuguillermin.fr/2012/03/unit-testing-tricks-for-play-2-0-and-ebean/
但我现在遇到的问题是不同的.但只是在这里分享这个链接,它可以帮助重现问题.
这个:http://monocaffe.blogspot.com.es/2012/12/play-21-rc1-migration-mini-guide.html
为什么如果
int x = -1 // binary: 11111111111111111111111111111111
x = x >>> 31;
Run Code Online (Sandbox Code Playgroud)
我们有00000000000000000000000000000001
但如果
int x = -1
x = x >>> 32;
Run Code Online (Sandbox Code Playgroud)
我们有11111111111111111111111111111111(再次-1)
但不是00000000000000000000000000000000?
假设我有一个scala代码,打开intellij idea:
object Test extends App {
// <- I click here
def init[T](xs: List[T]) : List[T] = xs match {
case List() => throw new Error("empty list")
case List(x) => List() // empty list
case head :: tail => head :: init(tail)
}
val list = List(1,2,4)
println ( init(list) )
}
Run Code Online (Sandbox Code Playgroud)
然后,当我想要启动此代码时,我点击行之间object和def定义,以便IDE知道我想要启动的内容(在这种情况下是整个对象,因为我没有选择任何方法).单击CTRL + SHIFT + F10 - 运行.
它开始..我在我的配置组合框中看到"测试"...但在那个确切的时刻我停止编译过程..并转到该配置更改配置..
我改变的是:"在发布之前"部分使其与"sbt:compile"一起运行.我这样做是因为我想依靠SBT而不是IDE.
问题是: …
这是angular-resource variable / object表示表单数据的范围:
$scope.form = {
name: 'bob',
email: 'bob@bobs.com'
}
Run Code Online (Sandbox Code Playgroud)
我可以通过各种方式观察name变量的变化.
$scope.$watch('form.name', function(newVal) {
if(newVal) {
alert(newVal)
}
});
Run Code Online (Sandbox Code Playgroud)
如果更改了任何文件,可以使用什么方法 - 名称,电子邮件或任何scope.form可能有的?
我的目的是根据用户在表单上更改某些内容的事实禁用或启用我的表单"保存".
最初发布并在这里回答:
https://groups.google.com/forum/#!topic/play-framework/s-ufMIbLz3c
但是当我把:
<div>
@if (request.uri == "/") { "Home Menu Selected" }
</div>
Run Code Online (Sandbox Code Playgroud)
但我得到了:
'(' expected but ')' found.
Run Code Online (Sandbox Code Playgroud)