- 浏览: 436812 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 941JAX-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 1126CXF、Restlet、RESTEasy、Jersey对 ... -
JSR311让Restful WebService变简单
2012-08-24 23:47 1124需求 公司有一个 ... -
Java REST框架一览
2012-08-24 23:42 1322目前宣称支持REST的Java框架包括以下这些: Restle ... -
Java下RESTful WebService的实现框架介绍
2012-08-24 23:39 6072Java下RESTful WebService的实现 ... -
比较JSF、Spring MVC、Stripes、Struts 2、Tapestry、Wicket
2012-08-22 10:28 977Java Web层 ... -
天涯bbs系统架构分析
2012-08-08 21:59 0天涯bbs系统架构分析 研究,就先从入口开始。天涯所 ... -
服务器系统架构分析日志
2012-08-08 21:57 0sudone.com 服务器系统架构分析日志 ... -
squid,nginx,lighttpd反向代理的区别
2012-08-08 21:38 929squid,nginx,lighttpd反向代理的区 ...
相关推荐
<groupId>org.apache.axis2 <artifactId>axis2 <version>1.6.2 <groupId>org.apache.axis2 <artifactId>axis2-adb <version>1.6.2 <groupId>org.apache.axis2 ...
SPS-D07:基于axis框架的webservice培训.ppt
Apache Axis2 Web Services 2nd Edition
axis2-java2wsdl-1.7.4.jar axis2-jaxbri-1.7.4.jar axis2-jaxws-1.7.4.jar axis2-jibx-1.7.4.jar axis2-json-1.7.4.jar axis2-kernel-1.7.4.jar axis2-metadata-1.7.4.jar axis2-mtompolicy-1.7.4.jar axis2-saaj-...
Axis2 Webservice端例子Axis2 Webservice端例子
webservice的框架有很多种axis1 axis2 cfx......。 其中axis1.4是比较稳定和成熟的一种。。。 axis的下载 http://ws.apache.org/axis/
axis2 开发webservice需要的完整jar,可以很好与spring进行整合
关于WebService的实例及相关axis/apache-cxf的应用关于WebService的实例及相关axis/apache-cxf的应用
Axis2调用SAP Webservice源码 使用Axis2 org.apache.axis2.eclipse.codegen.plugin_1.6.2.jar插件生成本地Java Proxy同事生成同步和异步调用测试用例 更重要的是配备详细文档,实乃Java与SAP集成是宝典!
NULL 博文链接:https://songjianyong.iteye.com/blog/1920078
webService 生成插件axis2- idea-plugin-1.7.8
<Call Stack = DEBUG_FRAME = org.apache.axis2.util.JavaUtils.callStackToString(JavaUtils.java:564) DEBUG_FRAME = org.apache.axis2.description.ParameterIncludeImpl.debugParameterAdd(ParameterIncludeImpl...
支持开发 Axis2 的动力是探寻模块化更强、灵活性更高和更有效的体系结构,这种体系结构可以很容易地插入到其他相关 Web 服务标准和协议(如 WS-Security、WS-ReliableMessaging 等)的实现中。 Apache Axis2 是Axis...
二、利用axis2发布服务 2.1 用java建一个简单的工程sayHi,在里面编写一个简单的服务类sayHi,里面有一个函数sayHello. package Hi; publicclass sayHi { public String sayHello(String user,String weather) { ...
java 开发 webservice axis2 方式详解。 附带详细说明文档 配置 ,
myeclipse6.5集成axis2 以及axis2_WebService_开发指南 内含2个jar。。初学者必备!!
Java Webservice Axis2 Client(含soapheader验证)
抛出无法找到主类:org.apache.axis.wsdl.WSDL2Java(Throws Could not find main class: org.apache.axis.wsdl.WSDL2Java)。 添加本文的jar包压缩包解压出来的所有jar包到当前使用的java.exe 命令的lib目录下的ext...
有两种实现Apache Axis2 Web服务引擎 - Apache的Axis2/Java访问Apache Axis2/ C 虽然你会发现这里所有在Apache Axis2/Java的信息,你可以访问Apache的Axis2/ C网站的Axis2/ C实现信息。 访问Apache Axis2,Axis2中...
tools的工具包,axis2,apache-cxf