- 浏览: 1727675 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (288)
- java (59)
- javaweb (15)
- eclipse (16)
- uml (1)
- java ee (7)
- windows (5)
- html (4)
- 数据结构和算法 (6)
- oracle (84)
- struts (3)
- ajax (3)
- hibernate (3)
- spring (12)
- ExtJS (14)
- 随笔 (2)
- JavaScript (9)
- PL SQL (12)
- tomcat (2)
- Plugins (5)
- office (2)
- webService (4)
- others (9)
- htc (1)
- 自定义标签的行为 (1)
- powerDesigner (3)
- webSphere (5)
- linux (6)
- dom4j (1)
- xml (5)
- json (2)
- bat (4)
- spring MVC (5)
- MySQL (12)
- junit (4)
- maven (10)
- jquery (1)
- mongoDB (16)
- git (0)
- mybatis (5)
- svn (3)
- activemq (3)
- quartz_job (1)
最新评论
-
白天看黑夜:
PDMReader实现pdm建模快速导出word,html文件 ...
利用powerDesigner逆向导出oracle表为PDM并把PDM转为CDM -
sanshao:
roompig 写道beancopier只实现了浅拷贝的功能, ...
使用Cglib的BeanCopier实现Bean的拷贝 -
贝塔ZQ:
Java实现导入导出excel文件,利用poi实现感觉代码比较 ...
利用java导入导出excel到oracle数据库 -
suxj16:
部署之后启动有问题org.springframework.be ...
spring mvc文件上传实现进度条(转) -
suxj16:
谢谢分享。部署之后启动有问题org.springframewo ...
spring mvc文件上传实现进度条(转)
一.使用axis2构建WebService服务器(POJO方式)。
1.下载所需的包:axis2的二进制包和axis2.war包。
下载地址:http://axis.apache.org/axis2/java/core/download.cgi#a1_5_2
2.将下载的axis2.war放到tomcat的webapps目录下,启动tomcat,此时webapps目录会自动解压出axis2目录,如下图:
此时在浏览器地址栏中输入: http://localhost:8080/axis2 ,如果一切正常会看到如下页面:
3.编写服务器端代码:
启动Eclipse,选择File---New---Project,找开新建向导,如下图:
4.选择Java Project,点击Next,打开新建项目窗口,为新建项目命名,这里命名为4thWebService,点击Finish完成项目的创建。
5.编写服务器端代码:
选择File---New---Class,新建的类必须是不含任何包名的类,命名为:MyWebService,如下图所示:
6.点击Finish完成创建,并编写该类的代码如下:
public class MyWebService { public String helloWebService(String name){ System.out.println("client args = "+name) ; return name + " , this is webService . " ; } }
7.将编译后的MyWebService.class文件放置到tomcat的webapps/axis2/WEB-INF/pojo(如果没有pojo文件夹,那么需要手动创建该文件夹)目录下。
8.在浏览器的地址栏中输入:http://localhost:8080/axis2/services/MyWebService?wsdl
如果创建成功,你会看到如下页面:
使用POJO方式搭建WebService的优缺点:
优点:简单
缺点:服务器端Java类不能含有包名。
二.使用axis2构建WebService客户端.
1.需要把下载的二进制包解压,并把该文件夹下lib中所有的jar包都拷贝到自己的项目中(因为我也不知道具体哪个jar包有用,,所以保险起见,全导入,呵呵).
2. 编写客户端Java类代码如下:
package com.ysj; 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 TestAxis2 { /** * @param args */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub new TestAxis2().test(); } public void test() throws Exception { // 服务器端WebService的WSDL连接串 String serviceUrl = "http://172.16.225.170:8080/axis2/services/MyWebService?wsdl" ; RPCServiceClient serviceClient = null; String resultString = ""; serviceClient = getServiceClient(serviceUrl); // 服务器端开放的方法名 String wsFunction = "helloWebService"; System.out.println(wsFunction); // 要传给服务器开放方法的参数. String jsonString = "你好" ; resultString = login(serviceUrl,serviceClient, jsonString, wsFunction); System.out.println("resultString=" + resultString); } public RPCServiceClient getServiceClient(String wsdlUrl) { RPCServiceClient serviceClient = null; try { serviceClient = new RPCServiceClient(); Options options = serviceClient.getOptions(); EndpointReference targetEPR = new EndpointReference(wsdlUrl); options.setTo(targetEPR); } catch (AxisFault e) { e.printStackTrace(); } return serviceClient; } public String login(String serviceUrl,RPCServiceClient serviceClient, String jsonString, String wsFunction) throws AxisFault { // 在创建QName对象时,QName类的构造方法的第一个参数表示WSDL文件的命名空间名,也就是<wsdl:definitions>元素的targetNamespace属性值 QName opLogin = new QName("http://ws.apache.org/axis2", wsFunction); // 参数,如果有多个,继续往后面增加即可,不用指定参数的名称 Object[] inputArgs = new Object[] { }; if(jsonString!=null&&!"".equals(jsonString)){ inputArgs = new Object[] { jsonString }; } /* 返回参数类型,这个和axis1有点区别 invokeBlocking方法有三个参数,其中第一个参数的类型是QName对象,表示要调用的方法名; 第二个参数表示要调用的WebService方法的参数值,参数类型为Object[]; 第三个参数表示WebService方法的返回值类型的Class对象,参数类型为Class[]。 当方法没有参数时,invokeBlocking方法的第二个参数值不能是null,而要使用new Object[]{} 如果被调用的WebService方法没有返回值,应使用RPCServiceClient类的invokeRobust方法, 该方法只有两个参数,它们的含义与invokeBlocking方法的前两个参数的含义相同 */ Class[] returnTypes = new Class[] { String.class }; Object[] response = serviceClient.invokeBlocking(opLogin, inputArgs, returnTypes); String result = (String) response[0]; // display results if (result == null) { System.out.println("result is null!"); } else { System.out.println(wsFunction+" : " + result); } return result; } }
输出结果为:
helloWebService
helloWebService : 你好 , this is webService .
resultString=你好 , this is webService .
评论
<!-- axis2 -->
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-aar-maven-plugin</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-adb</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-adb-codegen</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-ant-plugin</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-clustering</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-codegen</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-integration</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-java2wsdl</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-java2wsdl-maven-plugin</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-jaxbri</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-jaxws</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-jaxws-integration</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-jibx</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-json</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-kernel</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-mar-maven-plugin</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-metadata</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-mtompolicy</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-repo-maven-plugin</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-resource-bundle</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-saaj</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-soapmonitor-servlet</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-spring</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-http</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-local</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-wsdl2code-maven-plugin</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-xmlbeans</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>org.apache.axis2.osgi</artifactId>
<version>1.6.3</version>
</dependency>
<!-- axis2 -->
不好,我的package暴露了自己的身份,呵呵.
发表评论
-
Java List 生成 树(增强版)
2017-03-20 18:29 4555Java List 生成 树:http://ysj51 ... -
在CentOS中安装与配置JDK8
2017-01-14 21:20 939环境准备 系统环境:centos6.5 安装方式:r ... -
Java List 生成 树(转)
2016-03-15 15:47 8734文章出自:http://www.cnblogs.com ... -
使用Cglib的BeanCopier实现Bean的拷贝
2015-12-01 16:49 28902选择Cglib的BeanCopier进行B ... -
解决Java计算浮点数精度问题(BigDecimal)
2015-11-09 17:52 3103工具类如下: package com.yusj.we ... -
JAVA根据IP地址获取详细的地域信息(转)
2015-07-16 14:45 25661文章出自:http://hejianke83.blog ... -
Java获取客户端的真实IP地址(转)
2015-07-15 16:10 3901文章出自:http://newleague.iteye ... -
XML 和 java对象相互转换(转)
2015-07-14 16:43 4007文章出自:http://hbiao68.iteye.c ... -
Java + MongoDB 实现 hello world 例子(译)
2015-04-22 12:18 3956原文出自:http://www.mkyong.com ... -
Java MongoDB 教程(译)
2015-03-16 15:25 1892原文出自:http://www.mkyong.com ... -
使用eclipse创建多模块maven web项目
2015-02-11 17:43 6361前提:eclipse已经安装maven插件。 ... -
过滤有效查询条件的好方法
2014-11-13 17:25 1589在工作中经常遇到明细查询,前段有很多查询条件,但是不 ... -
Java web过滤器验证登录(避免未经登录进入主页)
2014-11-03 13:36 4615要想实现此功能,分以下两步: 1.配置web.xm ... -
解决servlet-api包冲突问题(maven)
2014-08-20 10:12 47104问题描述:本人的项目是用Maven管理,而且用到了s ... -
eclipse在线安装findbugs插件方法
2014-08-15 10:07 2315第一种方法: 菜单:Help -> Eclip ... -
eclipse构建maven的web项目(转)
2014-07-30 12:05 1047文章出自:http://blog.csdn.net/s ... -
在web.xml下配置error-page
2014-07-18 15:20 1885解决问题:捕获页面错误并反到指定页面处理。 在 ... -
eclipse实现OpenExplore
2014-06-05 17:05 1601首先下载附件OpenExplorer_1.5.0.v2 ... -
StringUtils中isEmpty 和isBlank的区别(转)
2014-05-27 16:17 11374文章出自:http://www.2cto.com/kf ... -
JDK动态代理实现原理(转)_AOP简介
2014-04-25 16:28 6386文章出自: http://rejoy.it ...
相关推荐
【标题】:“利用Axis2实现WebService开发与部署” 【描述】:“利用Axis2实现WebService开发与部署-3中方法进行开发” 【标签】:“WebService” 本文将详细讲解如何使用Apache Axis2框架来开发和部署Web ...
### Axis2实现WebService知识点 #### 一、Axis2简介 - **定义**:Apache Axis2是基于Java的一个开源的WebService框架,它支持多种标准(包括SOAP1.1、SOAP1.2、WS-Addressing等),并且具有轻量级、模块化的特点。...
总结来说,Spring集成Axis2实现Web服务涉及到Spring的IoC容器、服务的创建和发布、以及客户端的调用等多个环节。了解并掌握这些知识点,对于开发高质量的Web服务应用至关重要。在实际项目中,务必确保所有必要的库...
1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web服务接口。这个类通常会遵循SOAP协议,定义服务操作。例如,你可以创建一个名为`HelloWorldService`的类,包含一个`sayHello`...
【标题】中的“基于axis2实现的webservice简单实现(客户端+服务端)”表明了本文将探讨如何使用Apache Axis2框架来创建和消费Web服务。Apache Axis2是Apache软件基金会开发的一个Web服务引擎,它提供了高效且灵活的...
总结起来,这个项目涉及使用Java和Tomcat搭建Web服务环境,利用Axis2框架构建服务,并通过集成Jettison库处理JSON数据的生成和解析。这样的技术栈在现代Web服务开发中非常常见,对于构建可交互、高效的API非常重要。
- 利用AXIS2生成的客户端存根类,简化调用过程。 7. **AXIS2与JAR文件** 在提供的压缩包文件中,"lib"包包含的是AXIS2运行时所需的库文件,包括AXIS2核心库、XML解析器、SOAP引擎等相关JAR文件。这些JAR文件是...
描述中的“一个基于axis的webservice接口例子”进一步明确了这是一个基于Apache Axis2的Web服务接口实现。Axis2是Apache SOAP(Simple Object Access Protocol)项目的继任者,它不仅支持SOAP,还支持RESTful风格的...
描述中提到的“简单例子:axis2整合spring发布webservice”,意味着我们将学习如何将这两个框架结合,以便通过Spring来管理和控制Web服务的生命周期,同时利用Axis2的Web服务处理能力。此外,“以及session的管理”...
总的来说,Axis2 是一个强大的工具,为开发者提供了在 Java 平台上实现 WebService 请求的便利。理解其工作原理和使用方法是提升你在 IT 领域尤其是企业级应用开发中的技能的重要一步。通过实践和探索提供的资源包,...
在本文中,我们将深入探讨如何使用Spring、Axis2和Maven构建一个基于Java的Web服务(WebService)服务端示例。这些技术的结合为开发人员提供了高效、灵活且可扩展的解决方案来创建和消费Web服务。 首先,让我们了解...
本文将深入探讨如何利用Java和Axis2库来实现这一功能,同时结合提供的代码示例进行详细解析。 首先,Web服务是一种通过网络进行通信的软件系统,通常基于WSDL(Web Services Description Language)定义接口,SOAP...
在描述 "在 Eclipse 上使用 Axis2 编辑 WebService 和发布 WebService" 中,我们可以理解到,开发者将通过 Eclipse 这个流行的 Java IDE 来实现 WebService 的开发工作。Eclipse 提供了 Axis2 插件,使得开发者可以...
总结,利用 Axis 实现 WebService 能够快速构建跨平台、跨语言的通信桥梁。通过服务端和客户端的代码实例,初学者可以深入理解 WebService 的工作原理和 Axis 的使用方法。在这个实例中,提供的代码已经过测试,可以...
【标题】:“利用Axis编写简单的WebService” 在Java世界中,创建和使用Web服务是一个常见的任务,而Axis是一个流行的开源工具,用于实现基于SOAP(简单对象访问协议)的Web服务。本篇文章将指导你如何利用Axis来...
2. "利用Java编写简单的WebService实例 - 少说些漂亮话,多做些日常平凡的事情 - ITeye技术网站.mht":此文件可能会提供一个实际的Java Web服务开发示例,指导读者如何从零开始创建一个简单的Web服务,强调实践操作...
Axis2是Apache软件基金会开发的一个高效的Web服务框架,它基于Java语言,提供了强大的Web服务支持。本教程将详细介绍如何使用Axis2来搭建Web服务,并探讨其与Spring框架的集成。 【描述】:虽然有多种Web服务技术,...