- 浏览: 447208 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (267)
- java (8)
- 求职&面试 (1)
- linux (33)
- windows (1)
- C++ (5)
- android (12)
- QT (1)
- 经验 (1)
- memory-leaks (1)
- Streaming&V/A (1)
- network&security (5)
- SCM (13)
- mysql (10)
- browsers (4)
- Windows APIs (2)
- opensource (1)
- pm (1)
- GDI (1)
- database (14)
- MFC (1)
- web&fronts (17)
- Tomcat (4)
- OLE (1)
- 观后感 (1)
- Production (2)
- UML (3)
- Javascript (7)
- Cloud Computing&SAAS (5)
- SoftwareEngineering (1)
- Computer&Maintenance (1)
- Web (8)
- Desgin (1)
- J2ee (10)
- mysql cluster (0)
- LB&HA (2)
- webserver (11)
- php (5)
- cas&authtication (0)
- Languages (1)
- IDEs (3)
- architecture (2)
- iOS (8)
- spring (3)
- webservices (1)
- security (1)
- MVCFrameworks (2)
- bservices (0)
- build-tools (2)
- unittest (1)
- spring-security (0)
- sphinx (2)
- hibernate (1)
- mybatis (2)
- search (0)
- nginx (2)
- design&production (2)
- DFS (0)
- algorithm (0)
- distributed&network (0)
- blogs (0)
- os&admin (0)
- fastcgi (0)
- kv-db (0)
- operation&maintenance (1)
- productions (9)
- 养生 (1)
- appserver (1)
- HTTP (2)
- test (1)
- erlang (2)
- browser (0)
- 非技术 (2)
- mobiles (2)
- cloud computing (2)
- Business (2)
- maven (1)
- python (5)
- 人生 (0)
- Cryptography (3)
- CV (0)
- cms (2)
- jqm (2)
- html (2)
- flex (1)
- redmine (1)
- iptables (1)
- groovy (1)
- scala (1)
- grails (1)
- ftp (3)
- vsftpd (2)
- lua (0)
- chroot (3)
- jailkit (3)
- UED (0)
- myeclipse (2)
- ide (2)
- eclipse (2)
最新评论
-
Nick712:
http://blog.csdn.net/victory08/ ...
处理SVN出现:Cleanup failed to process the following paths: xxx -
xs6262460:
Spring AOP根据JdbcTemplate方法名动态设置数据源 -
xhpscdx:
我的解决办法是把D:\ACRS\Projects\TAIS 下 ...
处理SVN出现:Cleanup failed to process the following paths: xxx -
hnraysir:
总结得相当不错,支持下。
使用CodeIgniter 创建 RESTful 服务 REST API【原创译文】 -
云上太阳:
这个必须评论下,间接的救过俺的命啊
解决tomcat启动报错,加强错误日志的显示:
由于最近需要做webservice接口,所以google了一下,发现Apacle有个Axis2插件,一直觉得Apache的插件还是蛮好用的,于是决定应用Axis2来实现Webservice,第一次做webservice,呵呵有很多不懂的地方,所以记录下来留着以后备用。
首先访问Apache官网http://axis.apache.org/axis2/java/core/download.cgi下载Axis2最新的1.6.2的两个文件,axis2-1.6.2-bin和axis2-1.6.2-war,我这里用到了axis2的eclipse插件,所以同时下载了 axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip两个eclipse插件。
下载完这几个文件之后,需要将axis2的war文件复制到tomcat的wabapps目录下,重启Tomcat服务,浏览器输入axis2服务地址http://localhost:8082/axis2/,如果axis2服务没有问题,页面会显示如下效果,说明服务启动成功。
接下来在Eclipse中安装axis2插件,将下载的axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip文件解压,解压出来就是2个jar包,
将这两文件复制到Ecilpse的 plugins文件夹下,重启Eclipse,配置axis2的运行环境,如图,图中的路径F:\axis2-1.6.2就是下载的axis2-1.6.2-bin的解压目录。
点击file->new others->,如果插件安装成功,在窗口的列表中会显示如下的axis2的两个选项,
做好以上准备工作之后,接下来就要开始创建Webservice了。首先创建一个java工程,并创建一个Java类,很简单的一个类,只包含一个公共方法,如下
- package com.jax.test;
- import com.jax.db.DataBase;
- public class TestService {
- public String getData(String id,String name){
- return DataBase.getData(id,name);
- }
- }
在服务类TestService中,有一个getData方法,最后发布服务之后,该方法就是暴露给外界访问webservice接口的方法。包含2个String参数和一个返回值,在方法中,
通过DataBase类的getData方法访问了Oracle数据库并返回数据。
编写完服务类之后,通过axis2的插件将服务打包成aar文件,复制到tomcat的webapps的axis2目录下的WEB-INF下的services文件夹下,打包过程如下
点击file->new others-> 在窗口中选择Axis2 Service Archiver选项,然后下一步如图,该步骤是选择class类的根目录,在bin目录下,包含了2个Class类文件,
com.jax.test.TestService和com.jax.db.DataBase,因为在TestService服务类中,关联了DataBase类,所以要选择根目录。
点击next ->如图所示 勾选Skip WSDL
点击next->选择服务所需的jar包,在这里因为连接了oracle数据库,所以选择了orache的驱动包
点击next-> 如图,勾选 图中的选项。
点击next-> 如图,输入服务名和服务类的全路径名,选择Search declare methods only,会显示要发布的服务方法。
输入打包aar文件的名称和输出路径,最后打包完成。
最后将打包好的aar文件复制到tomcat 的axis2的WEB-INF的services目录下,重启Tomcat服务,如图,发布的MyService服务
这样一个简单的webservice服务就发布完成了,有一点需要注意的是,和这个服务类相关的类需要打成jar包拷贝到axis服务的WEB-INF的lib目录下。
用Axis2创建调用webservice的客户端,创建java工程,引入以下axis2相关的jar包
axiom-api-1.2.11.jar
axiom-impl-1.2.11.jar
axis2-adb-1.5.5.jar
axis2-kernel-1.5.5.jar
axis2-transport-http-1.5.5.jar
axis2-transport-local-1.5.5.jar
commons-codec-1.3.jar
commons-httpclient-3.1.jar
commons-io.jar
commons-logging-1.1.1.jar
httpcore-4.0.jar
mail-1.4.jar
neethi-2.0.5.jar
wsdl4j-1.6.2.jar
XmlSchema-1.4.3.jar
创建调用服务类,应用axis2提供的类实现调用服务,代码如下:
- package com.test;
- import java.util.Iterator;
- import javax.xml.namespace.QName;
- import org.apache.axiom.om.OMAttribute;
- import org.apache.axiom.om.OMElement;
- 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 CallWebservice {
- public String getData(String id,String name) {
- String result=null;
- //webService的调用地址
- String srvcUrl = "http://localhost:8082/axis2/services/MyService";
- //操作的命名空间+“:”+操作名
- QName qname = new QName("http://test.jax.com", "getData");
- //传递的参数对象集
- Object param[] = new Object[] { id,name };
- try {
- //实例化远程服务调用客户端对象
- RPCServiceClient client = new RPCServiceClient();
- //实例化Options对象
- Options options = new Options();
- //设置Options对象的连接终端地址
- options.setTo(new EndpointReference(srvcUrl));
- //设置Options对象的操作事件对象
- options.setAction("urn:getData");
- //为远程服务调用客户端对象设置Options子对象
- client.setOptions(options);
- //传递参数,调用服务
- OMElement element = client.invokeBlocking(qname, param);
- result=element.getFirstElement() .getText();
- }
- catch (AxisFault e) {
- e.printStackTrace();
- }
- return result;
- }
- //测试
- public static void main(String[] args) {
- CallWebservice client=new CallWebservice();
- String rs = client.getData("1","张三");
- System.out.println(rs);
- }
- }
代码说明请看注释。
还有一种调用方式是通过axis2工具生成stub类,然后调用webservice,
如图
其中-url参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。-p参数指定了生成的Java类的包名,-o参数指定了生成的一系列文件保存的根目录。在执行完上面的命令后,读者就会发现在当前目录下多了个stub目录,在."stub"src"client目录可以找到一个MyServiceStub.java文件,该文件复杂调用WebService,然后可以在程序中直接使用这个类,通过stub调用webservice
代码如下:
- package client;
- import java.rmi.RemoteException;
- import org.apache.axis2.AxisFault;
- import client.MyServiceStub.GetDataResponse;
- public class CallService {
- public static void main(String[] args){
- //MyServiceStub中生成了一个getData(GetData getData)的方法
- //该方法的内部实现了调用发布的webservice服务中的getData()方法
- //首先创建参数对象
- MyServiceStub.GetData getData = new MyServiceStub.GetData();
- //给参数赋值
- getData.setId("1");
- getData.setName("张三");
- try {
- //实例化stub类
- MyServiceStub stub = new MyServiceStub();
- try {
- //调用服务方法
- GetDataResponse rs = stub.getData(getData);
- //返回值为String
- String str = rs.get_return();
- System.out.println(str);
- } catch (RemoteException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- } catch (AxisFault e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
发表评论
-
说说大型高并发高负载网站的系统架构(更新)
2012-09-05 01:04 0说说大型高并发高 ... -
JAX-RS @QueryParam Example
2012-09-04 11:58 984JAX-RS @QueryParam Example ... -
REST 风格的 Web 服务入门指南
2012-09-04 10:53 0REST 风格的 Web 服务入门 ... -
REST总结
2012-09-04 10:49 0REST总结 目录 ... -
REST
2012-09-04 10:47 01、“无状态服务器”约束 REST 的 ... -
RESTful Web服务非常简单
2012-09-04 10:07 0很多Java开发人员都对学习基本的RESTful web ... -
Jersey1.8在spring环境下的实现 包括实例代码
2012-09-04 10:06 0Jersey1.8在spring环境 ... -
CXF、Restlet、RESTEasy、Jersey对比
2012-08-28 17:21 1160CXF、Restlet、RESTEasy、Jersey对 ... -
JSR311让Restful WebService变简单
2012-08-24 23:47 1165需求 公司有一个 ... -
Java REST框架一览
2012-08-24 23:42 1364目前宣称支持REST的Java框架包括以下这些: Restle ... -
Java下RESTful WebService的实现框架介绍
2012-08-24 23:39 6093Java下RESTful WebService的实现 ... -
比较JSF、Spring MVC、Stripes、Struts 2、Tapestry、Wicket
2012-08-22 10:28 996Java Web层 ... -
天涯bbs系统架构分析
2012-08-08 21:59 0天涯bbs系统架构分析 研究,就先从入口开始。天涯所 ... -
服务器系统架构分析日志
2012-08-08 21:57 0sudone.com 服务器系统架构分析日志 ... -
squid,nginx,lighttpd反向代理的区别
2012-08-08 21:38 972squid,nginx,lighttpd反向代理的区 ...
相关推荐
### Axis2实现WebService知识...通过以上步骤,可以实现一个完整的基于Axis2的WebService应用,包括服务端的发布和客户端的调用。这为开发者提供了一个清晰的指南,帮助他们更好地理解和使用Axis2进行WebService开发。
总结来说,Spring集成Axis2实现Web服务涉及到Spring的IoC容器、服务的创建和发布、以及客户端的调用等多个环节。了解并掌握这些知识点,对于开发高质量的Web服务应用至关重要。在实际项目中,务必确保所有必要的库...
总结起来,使用Axis2发布Web服务和生成客户端代码调用服务是一个标准化的过程,涉及到服务的编写、打包、部署以及客户端的代码生成和调用。了解并熟练掌握这一过程,对进行Java Web服务开发至关重要。在实际开发中,...
【标题】中的“基于axis2实现的webservice简单实现(客户端+服务端)”表明了本文将探讨如何使用Apache Axis2框架来创建和消费Web服务。Apache Axis2是Apache软件基金会开发的一个Web服务引擎,它提供了高效且灵活的...
【标题】:“利用Axis2实现WebService开发与部署” 【描述】:“利用Axis2实现WebService开发与部署-3中方法进行开发” 【标签】:“WebService” 本文将详细讲解如何使用Apache Axis2框架来开发和部署Web ...
描述中提到的“简单例子:axis2整合spring发布webservice”,意味着我们将学习如何将这两个框架结合,以便通过Spring来管理和控制Web服务的生命周期,同时利用Axis2的Web服务处理能力。此外,“以及session的管理”...
描述中的“一个基于axis的webservice接口例子”进一步明确了这是一个基于Apache Axis2的Web服务接口实现。Axis2是Apache SOAP(Simple Object Access Protocol)项目的继任者,它不仅支持SOAP,还支持RESTful风格的...
客户端可以通过多种方式调用AXIS2发布的Web服务: - 使用AXIS2的客户端API,如Stub类,直接编程调用。 - 通过SOAP消息直接发送请求,可以使用各种HTTP客户端库,如Apache HttpClient。 - 利用AXIS2生成的客户端...
在 Axis2 中实现 WebService 请求涉及以下步骤: 1. **环境设置**:首先,你需要在你的项目中引入 Axis2 相关的 jar 包。这些 jar 包通常包括 Axis2 的核心库、XML 解析器、依赖的 Servlet API 等。在提供的资源包...
Axis2 发布 WebService Axis2 是一个基于 Java 的开源 Web 服务框架,由 Apache 软件基金会开发和维护。Axis2 提供了一个灵活的框架来开发、部署和管理 Web 服务,支持多种协议和数据格式,包括 SOAP、REST、JSON ...
【Eclipse + Axis2 发布 WebService】是一个关于在Eclipse集成开发环境中使用Apache Axis2框架创建并发布Web服务的教程。Apache Axis2是用于构建Web服务和Web服务客户端的高性能、灵活且可扩展的开源框架。以下是...
总之,"Axis2 开发 WebService" 主要涉及使用 Apache Axis2 框架和 Eclipse IDE 创建、测试和部署基于 SOAP 的 WebServices,通过这一过程,开发者可以实现不同系统间的互操作性,推动企业级应用集成和数据共享。
标题“Java-tomcat-axis2开发webservice返回json数据”涉及的是使用Java、Tomcat服务器以及Axis2框架来创建Web服务,并返回JSON格式的数据。这是一个常见的技术组合,用于构建RESTful API或者提供服务化接口。下面...
2. Tomcat服务器:这是Apache软件基金会的开源Servlet容器,用于部署和运行Java Web应用程序,包括基于AXIS2的WebService。 3. AXIS2:Apache AXIS2是Java平台上用于构建和使用Web服务的一个高性能、轻量级的框架。 ...
在本文中,我们将深入探讨如何使用Spring、Axis2和Maven构建一个基于Java的Web服务(WebService)服务端示例。这些技术的结合为开发人员提供了高效、灵活且可扩展的解决方案来创建和消费Web服务。 首先,让我们了解...
AXIS2是Apache软件基金会开发的一个开放源代码的Web服务框架,主要用于构建和部署Web服务。它是基于SOAP(简单对象访问协议)和WSDL(Web服务描述语言)的,提供了高性能、灵活且可扩展的环境来创建和消费Web服务。...
Axis2通过这些标准实现了Web服务的发布、调用和管理。 3. **Axis2的优势** - **模块化架构**:Axis2采用模块化设计,使得服务可以根据需要动态加载或卸载模块,提高了灵活性和可扩展性。 - **高性能**:Axis2优化...
在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而Axis2是Apache软件基金会开发的一个Web服务框架,专门用于创建和消费Web服务。本文将深入探讨如何使用Axis2客户端调用WebService接口,并且会特别关注...