1. package com.hfi.helloakka;
  2.  
  3. import akka.actor.ActorRef;
  4. import akka.actor.Props;
  5. import akka.actor.UntypedActor;
  6.  
  7. public class HelloWorld extends UntypedActor {
  8.  
  9. @Override
  10. public void preStart() {
  11. // create the greeter actor
  12. final ActorRef greeter =
  13. getContext().actorOf(Props.create(Greeter.class), "greeter");
  14. // tell it to perform the greeting
  15. greeter.tell(Greeter.Msg.GREET, getSelf());
  16. }
  17.  
  18. @Override
  19. public void onReceive(Object msg) {
  20. if (msg == Greeter.Msg.DONE) {
  21. // when the greeter is done, stop this actor and with it the application
  22. getContext().stop(getSelf());
  23. } else unhandled(msg);
  24. }
  25. }
  1. package com.hfi.helloakka;
  2.  
  3. import akka.actor.UntypedActor;
  4.  
  5. public class Greeter extends UntypedActor {
  6.  
  7. public static enum Msg {
  8. GREET, DONE;
  9. }
  10.  
  11. @Override
  12. public void onReceive(Object msg) {
  13. if (msg == Msg.GREET) {
  14. System.out.println("Hello World!");
  15. getSender().tell(Msg.DONE, getSelf());
  16. } else unhandled(msg);
  17. }
  18.  
  19. }

pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.hfi</groupId>
  5. <artifactId>helloakka</artifactId>
  6. <packaging>war</packaging>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <name>helloakka Maven Webapp</name>
  9. <url>http://maven.apache.org</url>
  10. <dependencies>
  11. <dependency>
  12. <groupId>junit</groupId>
  13. <artifactId>junit</artifactId>
  14. <version>3.8.1</version>
  15. <scope>test</scope>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.scala-lang</groupId>
  19. <artifactId>scala-library</artifactId>
  20. <version>2.10.2</version>
  21. </dependency>
  22. <dependency>
  23. <groupId>com.typesafe.akka</groupId>
  24. <artifactId>akka-actor_2.10</artifactId>
  25. <version>2.2.5</version>
  26. </dependency>
  27. </dependencies>
  28. <build>
  29. <finalName>helloakka</finalName>
  30. </build>
  31. </project>

可能遇到的问题:

java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class

用的akka包跟依赖的scala包版本不一致导致(貌似scala不向下兼容它的旧版本),笔者一开始用的2.11.7报错,换成pom中的2.10.2后(到akka-2.2.5.zip中看的版本号)程序就跑起来了。  参考了:http://www.jianshu.com/p/59733597d448

akka开发(一)HelloWorld的更多相关文章

  1. Spring Boot 《一》开发一个“HelloWorld”的 web 应用

    一,Spring Boot 介绍 Spring Boot不是一个新的框架,默认配置了多种框架使用方式,使用SpringBoot很容易创建一个独立运行(运行jar,内嵌Servlet).准生产级别的基于 ...

  2. Node.js开发入门—HelloWorld再分析

    在Node.js开发入门(1)我们用http模块实现了一个简单的HelloWorld站点,这次我们再来细致分析下代码.了解很多其它的细节. 先看看http版本号的HelloWorld代码: 代码就是这 ...

  3. Windows内核驱动开发:HelloWorld

    测试信息 Dev Machine: Windows Version: 2004 (19041.264) WDK Version: 10.0.19041.1 SDK Version: 10.0.1904 ...

  4. Webpack + React 开发 01 HelloWorld

    1.项目依赖 安装所需要依赖的其它第三方开源库,项目依赖如下: "dependencies": { "babel-core": "^6.21.0&qu ...

  5. Android开发新手HelloWorld解析

    首先看这个 HelloWorld 类. Java代码public class HelloWorld extends Activity {       /** Called when the activ ...

  6. Android jni简便开发流程

    <Android jni helloworld>中介绍了开发jni helloworld的步骤,本文将介绍jni简便开发流程 ① 写java代码 native 声明本地方法 ② 添加本地支 ...

  7. Android 开发第二天

    开发入门HelloWorld 首先打开开发工具 第一步 第二步 效果图 以后可以点击一直下去 第三步骤介绍一下里面项目的作用 SRC是用来保存源代码的东西MainAcrivity.java主视图res ...

  8. Intellij IDEA + Android SDK + Genymotion Emulator打造最佳Android开发

    原文:Intellij IDEA + Android SDK + Genymotion Emulator打造最佳Android开发 Intellij IDEA + Android SDK + Geny ...

  9. Visual Studio跨平台开发实战(1) - Hello Xamarin!

    原文 Visual Studio跨平台开发实战(1) - Hello Xamarin! 前言 应用程式发展的脚步, 从来没有停过. 从早期的Windows 应用程式, 到网路时代的web 应用程式, ...

随机推荐

  1. [leetcode]632. Smallest Range最小范围

    You have k lists of sorted integers in ascending order. Find the smallest range that includes at lea ...

  2. php 使用html5 XHR2 上传文件 进度显示

    思路:只要我们知道上传文件的总大小,还有上传过程中上传文件的大小,那么就可以实现进度显示了. 在html5中,XMLHttpRequest对象,传送数据的时候,progress事件用来返回进度信息. ...

  3. Castle ActiveRecord学习(三)数据映射及特性描述

    Model中的Demo: using Castle.ActiveRecord; using Castle.ActiveRecord.Queries; using System; using Syste ...

  4. 证书吊销列表(CRL)介绍

    一.证书吊销列表(CRL) 证书吊销列表 (Certificate Revocation List ,简称: CRL) 是 PKI 系统中的一个结构化数据文件,该文件包含了证书颁发机构 (CA) 已经 ...

  5. ffmpeg 入门教程

    1.在terminal,安装ffmpeg开源库 #brew install ffmpeg 2.新建一个目录first_ffmpeg,并在first_ffmpeg目录下新建ffmpeg目录 3.拷贝/u ...

  6. 老板说你的UI设计的不高级?你肯定没用这7个技巧...

    对于每个网页设计师而言,在设计过程中总会碰到需要作出设计决策的时候.也许你的公司并没有全职设计师,而需求上则要求设计出全新的UI:又或者你正在制作一个你自己的个人项目,而你希望它比 Bootstrap ...

  7. 用 npm 安装删除模块

    npm安装模块 [npm install xxx]利用 npm 安装xxx模块到当前命令行所在目录: [npm install -g xxx]利用npm安装全局模块xxx: 本地安装时将模块写入pac ...

  8. 设计神器 - 摹客设计系统上线了 | 晒出你的设计规范,赢iPad Pro!

    在国内,设计规范也许还是个不太常用的概念,但是如果你正好有参与互联网公司的产品设计,你应该早就已经体会到设计规范的重要性了.UI设计师总是要花费大量的时间和精力向开发描述一大堆设计细节,但是产品最后呈 ...

  9. stl学习记录(2)

    #include <iostream> #include <utility> #include <tuple> #include <complex> # ...

  10. 记unit of work与事务提交

    https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions/getting-started-with-ef-5-using- ...