虚拟化平台cloudstack(7)——新版本的调试

调试环境

ubuntu 12.04

JDK1.7

apache-maven-3.10

eclipse 4.2 Juno

mysql 5

源码下载及调试

上面的几个软件在上一篇中已经介绍了。

在新的版本中,整个的编译和调试过程都是基于maven的,而且整个工程的结构也有所变化。

更新git:

sudo apt-get install git-core

安装maven,确认安装的是maven 3

sudo apt-get install maven
skyme@skyme-virtual-machine:~$ mvn -version
Apache Maven 3.1.0 (893ca28a1da9d5f51ac03827af98bb730128f9f2; 2013-06-28 10:15:32+0800)
Maven home: /home/skyme/java/apache-maven-3.1.0
Java version: 1.7.0_21, vendor: Oracle Corporation
Java home: /home/skyme/java/jdk1.7.0_21/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.5.0-37-generic", arch: "amd64", family: "unix"

安装配置java

安装mysql并且创建用户,用户名cloud,密码cloud

sudo apt-get install mysql-server-5.5
mysql -u root -p 
输入密码
insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_sub
ject) values("localhost","cloud",password("cloud"),'','',''); 
grant all privileges on phplampDB.* to cloud@localhost identified by 'cloud'; 
flush privileges; 

安装tomcat6

sudo apt-get install tomcat6

构建步骤

下载源码:

git clone https://git-wip-us.apache.org/repos/asf/cloudstack.git

下载完成后,执行:

mvn clean install

构建完成后,进行测试:

mvn -P developer -pl developer -Ddeploydb

在这里面构建数据库的过程也改成了mvn的方式。

在执行测试的时候:

export MAVEN_OPTS="-XX:MaxPermSize=512M -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"

MaxPermSize的值在这里面设置为512M,因为有可能启动jetty的时候会报错

Exception in thread "main" java.lang.OutOfMemoryError: PermGen space。

然后启动jetty。

mvn -pl :cloud-client-ui jetty:run
d788942
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.network.guru.OvsGuestNetworkGuru_EnhancerByCloudStack_2230f61b
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.template.HypervisorTemplateAdapter_EnhancerByCloudStack_ab1a790f
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.network.guru.StorageNetworkGuru_EnhancerByCloudStack_8d4afb32
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.network.element.MidoNetElement_EnhancerByCloudStack_bbaedad
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting org.apache.cloudstack.storage.allocator.ClusterScopeStoragePoolAllocator_EnhancerByCloudStack_a26e7930
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting org.apache.cloudstack.storage.allocator.GarbageCollectingStoragePoolAllocator_EnhancerByCloudStack_3ecf09b5
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting org.apache.cloudstack.acl.StaticRoleBasedAPIAccessChecker_EnhancerByCloudStack_16619324
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.ha.KVMFencer_EnhancerByCloudStack_fa0503f3
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.network.element.VirtualRouterElement_EnhancerByCloudStack_9d6525ff
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.ha.XenServerFencer_EnhancerByCloudStack_bfe5e165
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.storage.secondary.SecondaryStorageVmDefaultAllocator_EnhancerByCloudStack_feb121d2
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.server.auth.MD5UserAuthenticator_EnhancerByCloudStack_1500f4a2
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.network.element.NiciraNvpElement_EnhancerByCloudStack_48e0bcdb
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.hypervisor.XenServerGuru_EnhancerByCloudStack_41a08dc3
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.ha.XenServerInvestigator_EnhancerByCloudStack_f77a7c2d
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.network.element.ElasticLoadBalancerElement_EnhancerByCloudStack_510d11fa
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.network.guru.NiciraNvpGuestNetworkGuru_EnhancerByCloudStack_9f279c07
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.baremetal.networkservice.BaremetalPxeElement_EnhancerByCloudStack_ec99bfab
INFO  [c.c.u.c.ComponentContext] (Timer-3:null) Starting com.cloud.server.ManagementServerImpl_EnhancerByCloudStack_550a6c02
INFO  [c.c.s.ManagementServerImpl] (Timer-3:null) Startup CloudStack management server...
INFO  [c.c.c.ClusterServiceServletContainer] (Thread-18:null) Cluster service servlet container listening on port 9090
INFO  [c.c.u.d.Merovingian2] (Timer-3:null) Cleaning up locks for 52238372990
INFO  [c.c.u.d.Merovingian2] (Timer-3:null) Released 0 locks for 52238372990
INFO  [c.c.c.ClusterManagerImpl] (Timer-3:null) register cluster listener class com.cloud.server.LockMasterListener
INFO  [c.c.c.ClusterManagerImpl] (Cluster-Heartbeat-1:null) We are good, no orphan management server msid in host table is found
INFO  [c.c.c.ClusterManagerImpl] (Cluster-Heartbeat-1:null) No inactive management server node found
WARN  [o.a.c.alerts] (Cluster-Notification-1:null)  alertType:: 14 // dataCenterId:: 0 // podId:: 0 // clusterId:: null // message:: Management server node 127.0.0.1 is up
WARN  [c.c.c.ClusterManagerImpl] (Cluster-Notification-1:null) Notifying management server join event took 76 ms

启动成功。

打开浏览器,访问URL:http://localhost:8080/client

输入

用户名:admin

密码:password

可登录。

打开eclipse,我们以远程可调试方式启动cloudstack,回到Eclipse工具中,点菜单“Run”,选择Debug Configurations

在出现的调试配置对话框中,我们点 New 创建一个新的Remote Java Application 配置。

设置eclipse 远程调试run,我们在Connect Tab页中,设置如下

选择远程调试使用的源代码,在Source Tab页中,点Add 按钮,从Java Project中增加源代码

出现的工程中,我们全部选择上。

点Debug.

打上断点,然后运行,就可以进行调试了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏代码拾遗

Spring Cloud 教程 - Eureka Server

将groupId 为 org.springframework.cloud,artifactId 为spring-cloud-starter-netflix-eu...

21940
来自专栏用户画像

Ajax GET请求后台数据

1、前台ftl文件,通过URL请求后台数据,返回数据(Json格式)封装在data中

17630
来自专栏nice_每一天

CentOS下安装JDK的三种方法

由于各Linux开发厂商的不同,因此不同开发厂商的Linux版本操作细节也不一样,今天就来说一下CentOS下JDK的安装:

24220
来自专栏dalaoyang

服务注册与发现---eureka

eureka简介:云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。 话不多说直接上代码 首先新建一个springcl...

43860
来自专栏Java成长之路

Spring MVC快速体验

Spring MVC 快速体验的五个步骤: 1. 配置web.xml 2. 创建Spring配置文件applicationContext.xml 3...

13930
来自专栏代码拾遗

Spring Cloud 教程 - Eureka Client

服务发现是微服务架构的一个关键原则。手动配置每一个客户端不仅非常复杂,同时也容易出错。Netflix 提供了Erueka作为服务发现的服务端和客户端。Sreve...

33930
来自专栏james大数据架构

SpringMVC过程中@RequestBody接收Json的问题 总是报415

在SpringMVC中用@RequestBody接收Json的问题,总是报415,经过一翻查找 前台js的post: var postdata = '{"tit...

20490
来自专栏EAWorld

详解Spring Boot 自动配置机制

一、简介 Spring boot 是一个基于 Spring框架开发,高于 Spring 框架,它对 Spring 做了更好的封装,提供了更多的产品级特性,极大的...

36460
来自专栏Danny的专栏

SLF4J和Logback日志框架详解

SLF4J是一套简单的日志外观模式的Java API,帮助在项目部署时对接各种日志实现。

20540
来自专栏SpringSpace.cn

使用 Kotlin 和Spring Boot 2.0快速开发REST API客户端 顶

在上一篇文章使用 Kotlin 和Spring Boot 2.0快速开发REST API接口内介绍了如何使用简单代码快速实现REST API的服务端接口,此文简...

8720

扫码关注云+社区

领取腾讯云代金券