akka开发(一)HelloWorld

package com.hfi.helloakka;

import akka.actor.ActorRef;
import akka.actor.Props;
import akka.actor.UntypedActor;

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);
      }
    }
package com.hfi.helloakka;

import akka.actor.UntypedActor;

public class Greeter extends UntypedActor {

      public static enum Msg {
        GREET, DONE;
      }

      @Override
      public void onReceive(Object msg) {
        if (msg == Msg.GREET) {
          System.out.println("Hello World!");
          getSender().tell(Msg.DONE, getSelf());
        } else unhandled(msg);
      }

    }

pom.xml

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.hfi</groupId>
  <artifactId>helloakka</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>helloakka Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>2.10.2</version>
    </dependency>
    <dependency>
          <groupId>com.typesafe.akka</groupId>
          <artifactId>akka-actor_2.10</artifactId>
          <version>2.2.5</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>helloakka</finalName>
  </build>
</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

时间: 2024-10-07 23:21:48

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

Webpack + React 开发 01 HelloWorld

1.项目依赖 安装所需要依赖的其它第三方开源库,项目依赖如下: "dependencies": { "babel-core": "^6.21.0", "babel-loader": "^6.2.10", "babel-preset-es2015": "^6.18.0", "babel-preset-react": "^6.16.0&quo

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

在Node.js开发入门(1)我们用http模块实现了一个简单的HelloWorld网站,这次我们再来仔细分析下代码,了解更多的细节. 先看看http版本的HelloWorld代码: 代码就是这么简单: // 引入http模块 var http = require("http"); // 创建server,指定处理客户端请求的函数 http.createServer( function(request, response) { response.writeHead(200, {&quo

Lesson1 -- IOS开发概述 &amp;&amp; HelloWorld

第一部分:IOS开发概述 1. IOS 系统架构 iOS是基于UNIX的,就系统的稳定性而言,要比其他操作系统好很多,我们完全可以相信这个操作系统! iOS的系统架构分为四个层次: 1)可触摸层 2)媒体服务层 3)核心服务层 4)核心操作系统层 如下图: 2. iOS系统架构中各层次的功能 可触摸层(Cocoa Touch):为应用程序开发提供各种有用的框架,并且大部分均与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作. 媒体服务层(Media Services):负责提供用于

muleESB的第一个开发实例-HelloWorld(二)

上篇博文我们简单的介绍了什么是ESB,教给了大家如何下载和安装了Studio. 假设 在学习本教程之前,假设您已经下载.安装并启动了Anypoint Studio. 创建新项目 单击File,选择New>Mule Project 打开新的Mule项目向导,输入我们第一个项目的名称:My First Project,然后单击Finish. 打开一个新的空白项目,下面是用于快速构建Mule项目的各种视图: 开始设计我们的项目,从面板中拖拽一个HTTP连接器放到画布上. 注意:Studio会自动用流包

Scala 深入浅出实战经典 第92讲:Akka第一个案例动手实战开发环境的搭建

在intellij idea上搭建akka开发. 使用idea的原因:没有必要花时间学配置:使用idea后会越使用越自然,越用越智能. 在maven,sbt上支持更好. maven的一些功能介绍,maven还是用得比较多. 范例word count代码的简单讲解. DT大数据梦工厂微信公众账号:DT_Spark. DT大数据梦工厂的微信公众号是DT_Spark,每天都会有大数据实战视频发布,请您持续学习. 王家林DT大数据梦工厂scala的所有视频.PPT和代码在百度云盘的链接:http://p

Visual Studio跨平台开发(1):Hello Xamarin!

前言 应用程序发展的脚步, 从来没有停过. 从早期的Windows 应用程序, 到网络时代的web 应用程序, 再到近几年相当盛行的行动装置应用程序(Mobile Application), 身为C#的开发人员与Visual Studio的使用者. Windows Phone与Windows Store App的开发是否已满足不了你了呢? 如果能夠让你使用C#及Visual Studio 来开发iOS及Android的app. 是否能再度唤醒你的开发魂? Xamain 正是为了这样的需求而诞生的

Akka(10): 分布式运算:集群-Cluster

Akka-Cluster可以在一部物理机或一组网络连接的服务器上搭建部署.用Akka开发同一版本的分布式程序可以在任何硬件环境中运行,这样我们就可以确定以Akka分布式程序作为标准的编程方式了. 在上面两篇讨论里我们介绍了Akka-Remoting.Akka-Remoting其实是一种ActorSystem之间Actor对Actor点对点的沟通协议.通过Akka-Remoting来实现一个ActorSystem中的一个Actor与另一个Actorsystem中的另一个Actor之间的沟通.在Re

Node.js开发入门—语音合成示例

出于项目需要,搞了一个语音合成(TTS)的小示例,使用的是OKVoice. 我想在PC上测试,OKVoice的快速接入API可以实现我的目的,文档在这里:http://dev.okvoice.com/file.php. 直接上代码吧,okVoiceTts.js,内容如下: var http = require('http'); var fs =require('fs'); var crypto = require('crypto'); var util = require('util'); va

Node.js开发入门—使用对话框ngDialog

做网站经常会遇到弹出对话框获取用户输入或弹出对话框让用户确认某个操作之类的情景,有一个基于AngularJS的扩展模块可以帮我们优雅地完成这类事情:ngDialog. ngDialog在github上提供了一个示例网页,演示了它的各种用法,在这里:https://github.com/likeastore/ngDialog/blob/master/example/index.html.ngDialog的github主页的readme也对常用的指令和服务做了较为详细的介绍,可以参考.我这篇就纯粹是