热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaAxis2发布及调用webservice接口

因为推荐系统改造的事情,需要研究下webservice。本来以为很简单的东西,结果折腾了两天,才勉勉强强搭了个示例。一方面是因为本身对这块不熟悉,另一方面是因为网上教程说的不明确,走了很多弯路。所以这
因为推荐系统改造的事情,需要研究下webservice。本来以为很简单的东西,结果折腾了两天,才勉勉强强搭了个示例。一方面是因为本身对这块不熟悉,另一方面是因为网上教程说的不明确,走了很多弯路。所以这里总结一个详细的教程。
Java发布webservice有多种方式,如Xfire、Axis、Axis2,每种方式都有所不同。我这里采用Axis2的方式。
1、发布webservice之前,我们要做些准备工作。首先要在linux上安装JDK,apache我不知道要不要安装,我测试机之前已经安装过了,没研究。这两个是基础,不懂的话自己先去学习学习吧。然后安装tomcat,比较简单,官网上下载tar.gz包,这个貌似3264通用。解压到安装目录,比如/opt/tomcat,然后配置文件/etc/profile,配置以下内容:export CATALINA_HOME=/opt/tomcatexport CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/libexport PATH=$PATH:$CATALINA_HOME/bin启动:进到bin目录下,./catalina.sh start关闭./shutdown.sh stop
测试:netstat -ntl |grep 8080 查看端口是不是起来了或者 http://192.168.2.41:8080/ (输入你自己配置的那个IP) 看看是不是出现了tomcat的界面
2、然后安装Axis2,这个也非常简单。去官网上下一个Axis2。下载地址:http://axis.apache.org/axis2/java/core/download.cgi。把war的zip包下下来就好Java Axis2发布及调用webservice接口 - scjthree - 亚存的博客 下完后解压,把axis2.war这个文件拷贝到tomcat/webapps目录下重启tomcat,会在这个目录下生成一个axis2目录,如图所示Java Axis2发布及调用webservice接口 - scjthree - 亚存的博客 
3、下面进入正式发布环节。Axis2发布webservice有两种方式,一种是pojo方式,也就是我这里要发布的,它功能相对较弱,不支持类加包名。我们先实验这种方式。在Linux任意目录新建一个HelloWorld的java程序,这里我们就新建两个函数:getName和add函数,用于测试Java Axis2发布及调用webservice接口 - scjthree - 亚存的博客
编译,把class文件拷贝到tomcat/webapps/axis2/WEB-INF/pojo目录下,没有pojo目录就新建一个Java Axis2发布及调用webservice接口 - scjthree - 亚存的博客
重启tomcat,在浏览器中输入http://192.168.2.41:8080/axis2/services/listServices 就可以看到你发布的webservice服务了,很简单吧
Java Axis2发布及调用webservice接口 - scjthree - 亚存的博客  4、开发接口
服务发布好了之后,我们需要开发接口。我这里用的是myeclipse8.5。刚才linux里面axis2/WEB-INF/lib里有N多jar,拷出来,导进myeclipse里,待会我们会用得到。也可以官网上去下个axis2-1.6.*-bin.zip,解压出里面的jar文件。eclipse里新建一个普通的工程即可,把刚才提到的那些包导进去,Java Axis2发布及调用webservice接口 - scjthree - 亚存的博客
新建一个class文件,命名为test.java,里面代码如下

package MZ.GetWebService;

import javax.xml.namespace.QName;

import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

public class test {
private static String EndPointUrl;
private static String QUrl="http://ws.apache.org/axis2";
private QName opAddEntry;
private static String WSUrl;
public RPCServiceClient setOption() throws AxisFault
{
RPCServiceClient serviceClient = new RPCServiceClient();
Options optiOns= serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(WSUrl);
options.setTo(targetEPR);
return serviceClient;
}

public QName getQname(String Option){
return new QName (QUrl,Option);
}
// 返回一维String数组
public String[] getArray(String Option) throws AxisFault
{
RPCServiceClient serviceClient =this.setOption();
opAddEntry =this.getQname(Option);
String[] strArray = (String[]) serviceClient.invokeBlocking(opAddEntry,new Object[]{1,2}, new Class[]{String[].class })[0];
return strArray;
}

public static void main(String[] argv) throws Exception
{
RPCServiceClient serviceClient = new RPCServiceClient();
Options optiOns= serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(WSUrl);
options.setTo(targetEPR);

test ws=new test);
ws.WSUrl="http://192.168.2.41:8080/axis2/services/HelloWorld";
String[] hello= ws.getArray("add");
System.out.println(hello[0]);
}
}


 运行,就可以得到返回的结果了

还有种方式还在研究 

 


推荐阅读
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • Java程序设计第4周学习总结及注释应用的开发笔记
    本文由编程笔记#小编为大家整理,主要介绍了201521123087《Java程序设计》第4周学习总结相关的知识,包括注释的应用和使用类的注释与方法的注释进行注释的方法,并在Eclipse中查看。摘要内容大约为150字,提供了一定的参考价值。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了StartingzookeeperFAILEDTOSTART相关的知识,希望对你有一定的参考价值。下载路径:https://ar ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • OpenCV4.5.0+contrib编译流程及解决错误方法
    本文介绍了OpenCV4.5.0+contrib的编译流程,并提供了解决常见错误的方法,包括下载失败和路径修改等。同时提供了相关参考链接。 ... [详细]
author-avatar
mobiledu2502870587
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有