【问题标题】:How to run akka actors in IntelliJ IDEA如何在 IntelliJ IDEA 中运行 akka 演员
【发布时间】:2013-05-15 21:14:29
【问题描述】:

来自 Akka 的网站文档:

然后,此主要方法将创建所需的基础架构 运行演员,启动给定的主要演员并安排 一旦主要参与者终止,整个应用程序将关闭。因此 您将能够使用类似于以下命令的命令运行上述代码 以下:

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>

代码本身(你可以看到没有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);
    }
}

【问题讨论】:

    标签: java intellij-idea akka


    【解决方案1】:

    文档和二进制发行版似乎不同步。

    如您所见,here on Github Main.scala 是在 16 天前添加的。

    要解决此问题,您可以将依赖版本更改为 SNAPSHOT。将快照存储库添加到 pom 并将版本更改为2.2-SNAPSHOT

    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.stackoverflow</groupId>
        <artifactId>akka-app</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <name>${project.artifactId}-${project.version}</name>
    
        <repositories>
            <repository>
                <id>akka-snapshots</id>
                <name>Akka Snapshots</name>
                <url>http://repo.akka.io/snapshots/</url>
                <layout>default</layout>
            </repository>
        </repositories>
    
        <dependencies>
            <dependency>
                <groupId>com.typesafe.akka</groupId>
                <artifactId>akka-actor_2.10</artifactId>
                <version>2.2-SNAPSHOT</version>
            </dependency>
    
        </dependencies>
    
    </project>
    

    现在akka.Main 将可用。为了启动应用程序,您必须指向正确的主类并添加您自己的演员类作为参数。

    首先选择新建运行配置:

    然后添加一个新的应用程序:

    给应用程序起一个名字(Actor 什么的)并填写主类为akka.Main 并将你的HelloWorld 类添加为Program Arguments(记得包含完整的包):

    现在你已经准备好运行程序了,只需按下工具栏中的播放按钮:

    瞧!

    【讨论】:

    • 祝你好运。但是关于SNAPSHOT:stackoverflow.com/questions/16569726/…
    • @ses 好吧,既然您使用的是SNAPSHOT 版本中的示例,那么我并没有真正看到问题所在。如果您希望它在稳定版本中工作,那么您将不得不等待。至少我回答了你的问题那么,我如何从 IntelliJ IDEA 启动它?
    • 现在我很高兴拥有:github.com/akka/akka/blob/master/akka-actor/src/main/scala/akka/… 这个用 java 编写的类
    • 嘿@maba 我看到在您的屏幕截图中,Props.create(Greeter.class) 在 IntelliJ 中被标记为错误,但显然编译和运行彻底的 sbt 命令行是可行的。我在这里有完全相同的问题......关于如何在 IntelliJ 中解决这个问题的任何想法?它很烦人。 :-/
    • 知道如何在 Jidea 中调试此应用程序。尝试了调试器,但它并没有在断点处停止执行。
    【解决方案2】:
    //You can use the following code to start your actor:
    
    public class Main {
    
      public static void main(String[] args) {
          akka.Main.main(new String[] { HelloWorld.class.getName() });
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-18
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      相关资源
      最近更新 更多