谁有Axis2+axis2调用webservicee的实例.....求发一份...

评论-1156&
trackbacks-0
1、编写一个简单的WebService的服务器端代码,代码如下: 代码import java.util.R
* &b&function:&/b& WebService HelloWorld服务示例
* @author hoojo
* @createDate
下午03:35:06
* @file HelloWorldService.java
* @package com.hoo.service
* @project Axis2WebService
* @blog http://blog.csdn.net/IBM_hoojo
* @email hoojo_@
* @version 1.0
public class HelloWorldService {
public String sayHello(String name) {
return name + " say: hello [axis2]";
public int getAge(int i) {
return i + new Random().nextInt(100);
注意,上面的HelloWorldService是没有package的。Copy这个类的class文件,放到tomcat目录下的webapps的axis2的WEB-INF目录的pojo文件夹下。如果没有pojo这个目录就手动创建一个一个文件夹。然后在浏览器输入:
点击Services的链接就可以看到我们手动发布的HelloWorldService了,或者是浏览器地址栏输入:
你就可以看到你刚才粘贴过去的这个WebService了。
点击链接就可以看到wsdl文件的内容了。内容很多,如果你看过axis1.x的介绍就知道wsdl文件的大致结构了。
下面讲解下为什么要将class放在pojo文件夹下。首先我们看看[tomcat_home]/webapps/axis2/WEB-INF/conf/axis2.xml
该文件中有这样一行代码:
&deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/&
.class的后缀文件放在目录pojo目录下。
2、测试这个WebService的方法
复制上面的HelloWorldService的链接地址,然后带上方法名称和参数值即可测试调用是否成功。如下:
http://localhost:8080/axis2/services/HelloWorldService/sayHello?name=jack
这个是WebService的地址
/sayHello是方法名称,?name=jack是参数名称和值
在浏览器中输入上面的地址后,可以看到如下效果:
可以看到返回值,和方法名称。ns:sayHelloResponse是方法名称,所有的方法名称后都会带上Response,后面的ns当然是当前方法所在的类的包名了,这里没有package就是默认的axis2的域名。
同样,getAge方法,也是一样的调用方法。
结果如下:
3、下面我们看下客户端调用代码的编写,代码如下:
代码package com.hoo.
import javax.xml.namespace.QN
import org.apache.axis2.AxisF
import org.apache.axis2.addressing.EndpointR
import org.apache.axis2.client.O
import org.apache.axis2.rpc.client.RPCServiceC
* &b&function:&/b&HelloWorldService 客户端调用代码
* @author hoojo
* @createDate
下午03:55:05
* @file HelloWorldClient.java
* @package com.hoo.service
* @project Axis2WebService
* @blog http://blog.csdn.net/IBM_hoojo
* @email hoojo_@
* @version 1.0
public class HelloWorldClient {
public static void main(String[] args) throws AxisFault {
//RPCServiceClient是RPC方式调用
RPCServiceClient client = new RPCServiceClient();
Options options = client.getOptions();
//设置调用WebService的URL
String address = "http://localhost:8080/axis2/services/HelloWorldService";
EndpointReference epf = new EndpointReference(address);
options.setTo(epf);
* 设置将调用的方法,http://ws.apache.org/axis2是方法
* 默认(没有package)命名空间,如果有包名
* 就是 包名倒过来即可
* sayHello就是方法名称了
QName qname = new QName("http://ws.apache.org/axis2", "sayHello");
//指定调用的方法和传递参数数据,及设置返回值的类型
Object[] result = client.invokeBlocking(qname, new Object[] { "jack" }, new Class[] { String.class });
System.out.println(result[0]);
qname = new QName("http://ws.apache.org/axis2", "getAge");
result = client.invokeBlocking(qname, new Object[] { new Integer(22) }, new Class[] { int.class });
System.out.println(result[0]);
如果你了解或是,这里的客户端调用代码比较简单,有部分关键注释,这里就不多加赘述。值得注意的是axis2的WebService客户端调用的返回对象是一个Object的数组,这点和axis1.x有很大不同。我们一般拿数组的第一个值,转换强转即可。
阅读(...) 评论() 上传我的文档
 下载
 收藏
希望能对大家的学习和工作有所帮助,如果还有其他的疑问或需要了解更多的内容可以给我QQ或邮箱留言或发站内信,我会尽力为大家解决。
 下载此文档
正在努力加载中...
java_webservice_axis2简单开发实例
下载积分:110
内容提示:java_webservice_axis2简单开发实例
文档格式:DOC|
浏览次数:340|
上传日期: 08:56:06|
文档星级:
该用户还上传了这些文档
java_webservice_axis2简单开发实例
官方公共微信[webservice] 基于Axis2的WebService开发及Demo下载(包含jar包) - CSDN博客
一、前期准备
首先需要下载axis2的相关jar包,到axis的官方网站即可获得开发的依赖包:
下载地址:
axis2-1.6.2-bin.zip里有axis2的jar包。
axis2-1.6.2-docs.zip里有详细的帮助文档。
axis2-1.6.2-src.zip里是源代码。
axis2-1.6.2-war.zip里是axis的管理平台,用于将WebService发布到Web容器中。放到tomcat可直接使用。
将axis2-1.6.2-war.zip文件解压到相应的目录,将目录中的axis2.war文件放到&Tomcat安装目录&\webapps目录中,并启动Tomcat,在浏览器地址栏中输入如下的URL:
,如看到axis2的主页面则安装成功。这是最简单的方法,但对我们学习没有帮助,当然这里我们不这么做
下载axis2-1.6.2-bin.zip,解压后的axis2-bin文件目录结构如下:
bin文件夹是axis2的常用工具,其中有将wsdl文件转换成客户端调用的wsdl2java工具及将java转换成wsdl文件的工具conf是axis2的配置文件lib运行所要的依赖库repository是发布过的axis服务和文件sample是示例webapp是web文件和jsp页面等
&二、编写和发布WebService
用Axis2实现Web Service,虽然可以将POJO类放在axis2\WEB-INF\pojo目录中直接发布成Web
Service,这样做不需要进行任何配置,但这些POJO类不能在任何包中。这样有很多局限性,所以我们不这么做,Axis2可通过services.xml配置方式允许将带包的POJO类发布成Web
Axis2所需的jar包(下面的Demo中提供下载)
创建web project项目,将所需jar包(在axis2-bin下lib目录中都可以找到)拷贝到WEB-INF/lib下,Add to Build Path .以下jar包都是必须的:
注意:圈出来的jar包,如果没有这个jar包,会报错:org.apache.axis2.AxisFault: Namespace URI may not be null ,并且很难找到原因,总之不要忽略它
写webservice 类
package com.april.webservice.
public class WebServiceServer {
public String sayHello(String param) {
return &Hello, &+
使用services.xml配置文件发布
services.xml配置文件如下
&service name=&helloService&&
&description&Web Service例子&/description&
&parameter name=&ServiceClass&&
com.april.webservice.server.WebServiceServer
&/parameter&
&messageReceivers&
&messageReceiver mep=&http://www.w3.org/2004/08/wsdl/in-out&
class=&org.apache.axis2.rpc.receivers.RPCMessageReceiver& /&
&messageReceiver mep=&http://www.w3.org/2004/08/wsdl/in-only&
class=&org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver& /&
&/messageReceivers&
&/service&
services.xml配置文件须放在META-INF目录下,&目录结构你可以自定义&在WEB-INF目录下创建services/firstService/META-INF文件夹,用于存放每个ws的services.xml
将解压的axis2-bin文件webapp目录下的axis2-web文件夹拷贝到WebRoot下。axis2-web这个文件夹是包含axis2整个的管理界面,可有可无,不过这个管理界面可以方便的查看所有可用的webservice以及每个ws中提供的方法services.xml中可以定义多个service&serviceGroup&
&service name=&helloService1&&
&/service&
&service name=&helloService2&&
&/service&
&/serviceGroup&
web项目中整合嵌入webservice
因为axis2嵌入了web project,所以ws就不需要打包成aar,直接在/WEB-INF目录下创建相应的文件夹和services.xml,当然还必须在web.xml中配置axis2
&servlet-name&AxisServlet&/servlet-name&
&display-name&Apache-Axis Servlet&/display-name&
&servlet-class&org.apache.axis2.transport.http.AxisServlet&/servlet-class&
&load-on-startup&1&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&AxisServlet&/servlet-name&
&url-pattern&/services/*&/url-pattern&
&/servlet-mapping&
通过axis2的管理界面查看
如果在WebRoot下添加了axis2-web这个文件夹,将web项目加入到tomcat webapp中,启动,浏览器输入就可以查看已经发布可用的webservice了
//wsdl2java简化客户端的编写
三、编写客户端调用程序
public static void main(String[] args) throws AxisFault {
//本机tomcat端口默认为8081
EndpointReference targetEPR = new EndpointReference(&http://localhost:8081/webserviceDemo/services/helloService&);
RPCServiceClient sender = new RPCServiceClient();
Options options = sender.getOptions();
options.setTimeOutInMilliSeconds(2*20000L);//超时时间20s
options.setTo(targetEPR);
QName qname = new QName(&http://server.&, &sayHello&);
String str = &April&;
Object[] param = new Object[]{str};
Class&?&[] types = new Class[]{String.class};
//这是针对返值类型的
* RPCServiceClient类的invokeBlocking方法调用了WebService中的方法。
* invokeBlocking方法有三个参数
* 第一个参数的类型是QName对象,表示要调用的方法名;
* 第二个参数表示要调用的WebService方法的参数值,参数类型为Object[];
* 第三个参数表示WebService方法的返回值类型的Class对象,参数类型为Class[]。
* 当方法没有参数时,invokeBlocking方法的第二个参数值不能是null,而要使用new Object[]{}。
Object[] response = sender.invokeBlocking(qname, param, types);
System.out.println(response[0]);
四、Demo下载
demo实例中包含以上配置、客户端RPC方式调用代码及所有Axis2必须的最小jar包客户端调用程序被放在了webservice.client.WebServiceClient.java中,当然src/test也有一份


php调用axis2 webservice简单案例_服务器应用_Linux公社-Linux系统门户网站
你好,游客
php调用axis2 webservice简单案例
来源:Linux社区&
作者:gzq_qiang
整体思路是:利用plugins生成服务aar文件,再把aar文件拷贝到
axis2的WEB-INF/services下面,查看发布成功后,在利用php
或java或其他语言的客户端调用webservice.
客户端用的是PHP,服务端是java,最后在说一下利用plugins来生成
java客户端的方法。
首先说一下我的环境:
MyEclipse5.5+tomcat5.5+JDK1.6
axis2版本是1.2
下载地址:csdn上我已上传
用到俩个plugins:
Axis2_Codegen_Wizard_1.3.0
Axis2_Service_Archiver_1.3.0
下载地址:csdn上我已上传
工具都准备好了我们开始
环境的配置。这里JDK以及myeclipse和tomcat这些就
不说了,主要是导入axis2的俩个插件,下载都后,直接解压到你的
myclipse下的plugins下。这里注意是直接解压到plugins下就可以。
然后从起myclipse,在File--new--other下打开如下界面:
看到:axiscode和axisservice说明安装成功。
下面就可以我们的开发了:
我们把下载下来的axis2.war放到tomcat下的webapps下面。
启动tomcat生成axis2项目。这时可以先看以下axis2解压后的
目录结构图:
注意WEB-INF下面的services下面就放我们将要生成的服务。aar格式。
axis2部署到服务器后,我们可以查看一下看看是否成功,启动tomcat,
在浏览器里输入:http://localhost:8080/axis2 出现下面界面
说明配置成功
开始我们的服务器端程序开发
我们首先创建javaProject,(注意是javaProject) &&
这是我的类名称叫Hello.java &&
里面的方法名称info(String&name) &&
public&class&Hello&{ &&
public&boolean&info(String&name){ &&
return& &&
}&&我们首先创建javaProject,(注意是javaProject)
这是我的类名称叫Hello.java
里面的方法名称info(String name)
public class Hello {
public boolean info(String name){
//可以写业务逻辑代码
//可以写连接数据库的操作
注意你的项目中可能有处理业务逻辑的代码,连接数据库的代码在
生成服务器的aar直接都要写好。但我们暴露的只有这个类Hello.java
根据类我们生成服务器端得aar
1.打开如下界面:
选择Axis2 service Archiver
2. 这步是找你的class,注意我们创建的是javaProject目录指到bin下
4.这里如果你用到了连数据库或者其他的jar包要点browse然后add进来
5.默认生成
6.找到你要生成服务的类,注意上面是你服务的名称自己定义,下面是服务类得全路径
填完后点load
7.设置你的服务生成的地址,我把它放在桌面上了,点击finsh
到此aar生成,接下来我们把这个东东考到之前我们部署的axis2项目下的WEB-INF/services
启动服务器,在此输入http://localhost:8080/axis2,点击service,进如何可以看的你发布
的服务名称。说明你的服务发布成功。
好了服务端已经生成ok。
下一页写客户端
相关资讯 & & &
& (08月27日)
& (08月12日)
& (09月22日)
& (08月27日)
& (08月08日)
图片资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款}

我要回帖

更多关于 axis2 部署webservice 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信