热门标签 | 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]);
}
}


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

还有种方式还在研究 

 


推荐阅读
  • 解决Jenkins编译过程中ERROR: Failed to Parse POMs的问题
    在使用Jenkins进行自动化构建时,有时会遇到“ERROR: Failed to parse POMs”的错误。本文将详细分析该问题的原因,并提供有效的解决方案。 ... [详细]
  • 本文整理了一份基础的嵌入式Linux工程师笔试题,涵盖填空题、编程题和简答题,旨在帮助考生更好地准备考试。 ... [详细]
  • 在Java Web服务开发中,Apache CXF 和 Axis2 是两个广泛使用的框架。CXF 由于其与 Spring 框架的无缝集成能力,以及更简便的部署方式,成为了许多开发者的首选。本文将详细介绍如何使用 CXF 框架进行 Web 服务的开发,包括环境搭建、服务发布和客户端调用等关键步骤,为开发者提供一个全面的实践指南。 ... [详细]
  • Java毕业设计项目:“传情旧物”网站(含源码与数据库)
    本项目介绍了如何配置和运行“传情旧物”网站,包括所需的技术栈、环境配置以及具体的操作步骤。 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 本文介绍了如何使用Java和PDFBox库根据坐标值对PDF文件进行局部切割的方法。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 本文对SQL Server系统进行了基本概述,并深入解析了其核心功能。SQL Server不仅提供了强大的数据存储和管理能力,还支持复杂的查询操作和事务处理。通过MyEclipse、SQL Server和Tomcat的集成开发环境,可以高效地构建银行转账系统。在实现过程中,需要确保表单参数与后台代码中的属性值一致,同时在Servlet中处理用户登录验证,以确保系统的安全性和可靠性。 ... [详细]
  • 本文详细解析了Java类加载系统的父子委托机制。在Java程序中,.java源代码文件编译后会生成对应的.class字节码文件,这些字节码文件需要通过类加载器(ClassLoader)进行加载。ClassLoader采用双亲委派模型,确保类的加载过程既高效又安全,避免了类的重复加载和潜在的安全风险。该机制在Java虚拟机中扮演着至关重要的角色,确保了类加载的一致性和可靠性。 ... [详细]
  • 如何使用 `org.apache.tomcat.websocket.server.WsServerContainer.findMapping()` 方法及其代码示例解析 ... [详细]
  • 如何使用 `org.eclipse.rdf4j.query.impl.MapBindingSet.getValue()` 方法及其代码示例详解 ... [详细]
  • FreeBSD环境下PHP GD库安装问题的详细解决方案
    在 FreeBSD 环境下,安装 PHP GD 库时可能会遇到一些常见的问题。本文详细介绍了从配置到编译的完整步骤,包括解决依赖关系、配置选项以及常见错误的处理方法。通过这些详细的指导,开发者可以顺利地在 FreeBSD 上完成 PHP GD 库的安装,确保其正常运行。此外,本文还提供了一些优化建议,帮助提高安装过程的效率和稳定性。 ... [详细]
  • 本文深入探讨了如何利用Maven高效管理项目中的外部依赖库。通过介绍Maven的官方依赖搜索地址(),详细讲解了依赖库的添加、版本管理和冲突解决等关键操作。此外,还提供了实用的配置示例和最佳实践,帮助开发者优化项目构建流程,提高开发效率。 ... [详细]
  • 本指南详细介绍了如何在CentOS 6.6 64位系统上以root用户身份部署Tomcat 8服务器。系统环境为CentOS 6.6 64位,采用源码安装方式。所需软件为apache-tomcat-8.0.23.tar.gz,建议将软件下载至/root/opt目录。具体下载地址请参见官方资源。本指南涵盖了从环境准备到服务启动的完整步骤,适用于需要在该系统环境下搭建高性能Web应用服务器的技术人员。 ... [详细]
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社区 版权所有