建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
1035213fnlks2fx6defuh6.jpg 体验鲲鹏开发套件 汇聚鲲鹏领域技术专家大咖

行解大鹏

发帖: 119粉丝: 3

级别 : 注册会员

发消息 + 关注

发表于2020-3-26 20:46:57 3746 1
直达本楼层的链接
楼主
显示全部楼层
KunPeng平台 Axis2c 1.6.0版本移植安装指南

1 Axis2c简介

    Apache Axis2/C是用C语言实现的Web服务引擎。它基于可扩展且灵活的Axis2体系架构。Apache Axis2/C可用于提供和使用WebServices。它的实现具有可移植性和嵌入式功能,因此可以在其他软件中作Web服务支持器。


 

2 环境信息

2.1 环境信息

项目

版本

下载地址

CentOS

7.6

https://www.centos.org/download/

Kernel

4.14.0

包含在操作系统镜像中

CPU

鲲鹏920


服务器配置

16U16GB40GB

 


 

3 配置编译环境

3.1 Yum源配置

说明:根据依赖或软件来源的不同,以及配置过程的不同,yum源配置分为如下三种:

1、本地yum源

2、网络yum源

3、华为yum源

不作任何配置时,则默认使用Centos官方yum源(需要外网权限)。

Yum源详细配置,可以参考:《KunPeng平台软件移植Yum源配置参考,本次使用本地yum源方式。

3.2 安装依赖包

步骤1   安装依赖包。

yum install wget gcc-c++ libxml2-devel

----结

 

 


 

4 安装

说明:本文将介绍两种安装方式,请视具体情况选择其中一种安装方式。

表 4-1 安装方式说明

安装方式

安装说明

源码编译安装

源码安装,与环境内核无冲突,可定制,但是复杂度高。

rpm方式安装

rpm包方式,方便简单(当部署环境与本文档环境一致时,推荐使用本方式)。

4.1 源码编译安装

4.1.1 获取源码

步骤 1   下载Axis2c源码。

wget http://archive.apache.org/dist/ws/axis2/c/1_6_0/axis2c-src-1.6.0.tar.gz

image.png

解压至当前目录:

tar -zxvf axis2c-src-1.6.0.tar.gz

image.png

说明:如果提示”wget: 未找到命令”,请先用yum install wget安装wget工具。

 

 

4.1.2 编译安装Axis2c

步骤 1   设置环境变量

export AXIS2C_HOME=/usr/local/axis2c

image.png

 

步骤 2   编译配置

切换至解压目录并编译配置

CFLAGS=-Wno-unused-but-set-variable ./configure --prefix=$AXIS2C_HOME --enable-tests=no --enable-amqp=no --enable-libxml2=yes --build=arm-linux

image.png

image.png

 

步骤 3   根据官方补丁修改文件

直接编译会出现以下问题,因此先根据官方补丁解决办法修改对应文件后,再执行编译。

image.png

 

vi neethi/test/Makefile.am:

image.png

vi neethi/test/Makefile.in:

image.png

image.png

 

步骤 4   编译安装

make -j4 && sudo -E make install

image.png

image.png

 

步骤 5   编译安装程序样例

cd samples/

CFLAGS=-I$AXIS2C_HOME/include/axis2c-1.6.0 LDFLAGS=-L$AXIS2C_HOME/lib ./configure --prefix=$AXIS2C_HOME --build=arm-linux

image.png

image.png

安装成功:

image.png

4.2 RPM方式安装

说明:附件中的rpm都是通过开源代码编译打包而成,并验证通过,打包过程参考”6 RPM打包“。


步骤 1   复制RPM包至服务器“ /home”目录并安装。

ll /home

image.png

步骤 2   安装RPM包。

yum localinstall /home/axis2c-1.6.0-1.el7.aarch64.rpm

 

image.png

image.png

步骤 3   添加环境变量。

vi /etc/profile

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/axis2c/lib

image.png

source /etc/profile

----结束

5 运行和验证

5.1 运行测试

步骤 1   启动axis2c服务。

切换至安装目录bin目录。

cd /usr/local/axis2c/bin

./axis2_http_server

image.png

 

步骤 2  启用调试模式。

 新建服务器连接,切换至安装目录bin目录。

STAFF_LOG_LEVEL=DEBUG3 STAFF_EXCEPTION_STACKTRACING=1./axis2_http_server

image.png

 

步骤 3  防火墙设置。

firewall-cmd --zone=public --add-port=9090/tcp --permanent

firewall-cmd --reload

image.png

步骤 4  测试服务是否正常。

http://localhost:9090/axis2/services

 image.png

----


 

6 RPM打包(参考)

说明:本段提供了RPM包制作的详细过程,当部署环境与本文档环境不兼容时,可参考此打包过程,自制RPM包,然后再安装到部署环境。

6.1 准备RPM 打包环境

步骤 1   安装rpmdevtools

yum install rpmdevtools

image.png

步骤 2   生成打包目录树。

cd ~/

rpmdev-setuptree

步骤 3   进入目录~/rpmbuild,应有如下文件夹:

cd ~/rpmbuild

image.png

----结束

步骤 4   上传补丁:

上传附件补丁至以下目录:


image.png

6.2 编辑SPEC文件

 

步骤 1   生成SPEC文件模板。

1.切换目录至~/rpmbuild/SPECS

cd ~/rpmbuild/SPECS

2生成模板文件axis2c1.6.0.spec

rpmdev-newspec axis2c1.6.0

ls

image.png

 

步骤 2   修改SPEC文件。

vi axis2c1.6.0.spec

修改后axis2c1.6.0.spec文件内容如下:




Name:           axis2c

Version:        1.6.0

Release:        1%{?dist}

Summary:        Apache Axis2/C is a Web services engine implemented in the C programming language.

 

License:        Apache License

URL:            http://axis.apache.org/axis2/c/core/index.html

%undefine _disable_source_fetch

Source0:        http://archive.apache.org/dist/ws/axis2/c/1_6_0/axis2c-src-1.6.0.tar.gz

Source1:    Makefile.am

Source2:    Makefile.in

 

BuildRequires: gcc-c++ libxml2-devel

 

%description

Apache Axis2/C is a Web services engine implemented in the C programming language. It is based on the extensible and flexible Axis2 architecture. Apache Axis2/C can be used to provide and consume WebServices. It has been implemented with portability and ability to embed in mind, hence could be used as a Web services enabler in other software.

 

 

 

%prep

%setup -c -n %{name}-%{version}

 

%build

cd axis2c-src-1.6.0/

cp -rf %{SOURCE1} %{SOURCE2} neethi/test/

export AXIS2C_HOME=%_buildrootdir/axis2c-1.6.0-1.el7.aarch64/usr/local/%{name}

CFLAGS=-Wno-unused-but-set-variable ./configure --prefix=$AXIS2C_HOME --enable-tests=no --enable-amqp=no --build=arm-linux --enable-libxml2=yes

make -j4

make install

 

cd samples

CFLAGS=-I$AXIS2C_HOME/include/axis2-1.6.0 LDFLAGS=-L$AXIS2C_HOME/lib ./configure --prefix=$AXIS2C_HOME --build=arm-linux

make -j4 && sudo -E make install

 

cd /root/rpmbuild/BUILDROOT/axis2c-1.6.0-1.el7.aarch64/usr/local/axis2c/lib

 

rm -rf libaxis2_axiom.so libaxis2_axiom.so.0 libaxis2_engine.so libaxis2_engine.so.0 libaxis2_http_common.so libaxis2_http_common.so.0 libaxis2_http_receiver.so libaxis2_http_receiver.so.0 libaxis2_http_sender.so libaxis2_http_sender.so.0 libaxis2_parser.so libaxis2_parser.so.0 libaxis2_xpath.so libaxis2_xpath.so.0 libaxutil.so libaxutil.so.0 libguththila.so libguththila.so.0 libneethi.so.0 libneethi.so

 

cp libaxis2_axiom.so.0.6.0 libaxis2_axiom.so

cp libaxis2_axiom.so.0.6.0 libaxis2_axiom.so.0

 

cp libaxis2_engine.so.0.6.0 libaxis2_engine.so

cp libaxis2_engine.so.0.6.0 libaxis2_engine.so.0

 

cp libaxis2_http_common.so.0.6.0 libaxis2_http_common.so

cp libaxis2_http_common.so.0.6.0 libaxis2_http_common.so.0

 

cp libaxis2_http_receiver.so.0.6.0 libaxis2_http_receiver.so

cp libaxis2_http_receiver.so.0.6.0 libaxis2_http_receiver.so.0

 

cp libaxis2_http_sender.so.0.6.0 libaxis2_http_sender.so

cp libaxis2_http_sender.so.0.6.0 libaxis2_http_sender.so.0

 

cp libaxis2_parser.so.0.6.0 libaxis2_parser.so

cp libaxis2_parser.so.0.6.0 libaxis2_parser.so.0

 

cp libaxis2_xpath.so.0.6.0 libaxis2_xpath.so

cp libaxis2_xpath.so.0.6.0 libaxis2_xpath.so.0

 

cp libaxutil.so.0.6.0 libaxutil.so

cp libaxutil.so.0.6.0 libaxutil.so.0

 

cp libguththila.so.0.6.0 libguththila.so

cp libguththila.so.0.6.0 libguththila.so.0

 

cp libneethi.so.0.6.0 libneethi.so

cp libneethi.so.0.6.0 libneethi.so.0

 

 

 

%files

/usr

%doc


----结束

6.3 RPM打包

步骤 1   rpmlint检查SPEC文件或RPM包。

1.安装rpmlint

yum install rpmlint

image.png

2.错误检查。

说明:如果返回错误/警告,使用 “-i” 选项查看更详细的信息。但由于rpmlint检测较严格,一些错误可忽略,可根据实际情况结合检测结果进行修改。

rpmlint –i axis2c1.6.0.spec

image.png

 

步骤 2   构建SRPM和RPM。

rpmbuild -ba axis2c1.6.0.spec

image.png

 

步骤 3   查看生成的RPM包。

ls ~/rpmbuild/RPMS/aarch64

image.png

步骤 4   RPM包验证。

RPM包的验证,可参考”5 运行和验证“。

----结束

 


 

7 FAQ

7.1 RPM打包流程、示例及问题集

参考:https://bbs.huaweicloud.com/forum/thread-38327-1-1.html

参考:https://bbs.huaweicloud.com/forum/thread-40825-1-1.html

7.2 Unable to guess system type

问题现象:

image.png

解决:

手动指定操作系统类型,加编译配置参数

--build=arm-linux

image.png

7.3 check-rpaths detected a broken PATH

问题现象:

image.png

解决:

vi ~/.rpmmacros

image.png


axis2c.zip 2.63 MB,下载次数:0

举报
分享

分享文章到朋友圈

分享文章到微博

五湖四海@银河护卫队

发帖: 93粉丝: 29

级别 : 版主

发消息 + 关注

发表于2020-4-1 19:18:39
直达本楼层的链接
沙发
显示全部楼层

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册