- 浏览: 554429 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (533)
- spring (8)
- struts (21)
- hibernate (17)
- java其他 (73)
- 设计模式 (2)
- 开发软件/插件 (26)
- android (8)
- extjs4 (1)
- 网络编程 (4)
- 生活杂记 (3)
- ibatis (5)
- 应用服务器 (4)
- js (26)
- html/css (16)
- linux (0)
- db (32)
- jsp/servlet (13)
- xml (9)
- webservice (10)
- 错误/异常处理 (23)
- 线程 (10)
- maven (7)
- lucene (2)
- python (0)
- 报表 (1)
- mongodb (6)
- restful (6)
- ssl (1)
最新评论
-
zmwxiaoming:
...
struts2拦截器验证登陆状态 -
u012413283:
感谢楼主,同样的问题解决了
eclipse下安装m2e的maven插件报错的各类解决方案(含pom editor没装好的解决方案) -
javalucky:
你妹,想不吐槽都不行啊,eclipse 那来的maven4My ...
clipse加载maven工程提示pom.xml无法解析org.apache.maven.plugins:maven-resources-plugin: -
zhaoyh82:
感谢楼主
eclipse下安装m2e的maven插件报错的各类解决方案(含pom editor没装好的解决方案) -
hua2011:
按照楼主说的,还是没有出现pom editor编辑器,麻烦楼主 ...
eclipse下安装m2e的maven插件报错的各类解决方案(含pom editor没装好的解决方案)
本文将介绍如何使用
Tomcat5.0和
Apache Axis2开发、部署及测试一个简单的
Web Service应用。
1. 工作环境
1. 工作环境
Eclipse 3.1.2+Lomboz+jdk1.5+ apache-tomcat-5.0.18+AXIS2:1.0(war版本和
bin版本
)
在
[url]http://ws.apache.org/axis2/download/1_0/download.cgi[/url]页面
下
,
下载
AXIS2的
Binary Distribution url: [url]http://apache.justdn.org/ws/axis2/1_0/axis2-std-1.0-bin.zip[/url]和
war Distribution url: [url]http://apache.justdn.org/ws/axis2/1_0/axis2-1.0-docs.zip[/url]。把这两个文件解压,比如解压缩的后得目录为
C:"axis2-std-1.0-bin和
C:"axis2.war。
在
Eclipse下通过菜单
window—preferences…--Java—Build Path—User Libraries 新建一个
user library,比如名字就叫
axis2把
C:"axis2-std-1.0-bin"lib下的所有
jar文件包含进来。把
axis2.war拷贝到
%TOMCAT-HOME%/webapps下面。
2.检验安装
在
Eclipse下启动
Tomcat,在地址栏内输入
[url]http://localhost:8080/axis2/[/url]
。
点击
Validate,将到达
Axis2 Happiness Page。
3.
WebService中的
HelloWorld
1)新建一个动态
web工程,取名
ZZaxis,右键点击项目名,选择
Properties-Java Build Path-Add Library-User Library-axis2。
2)新建
package sample,建立
HelloWorld.java,代码如下。
HelloWorld.java
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
public class HelloWorld {
public OMElement sayHello(OMElement in){
String name=in.getText();
String info=name+"HelloWorld!";
OMFactory fac=OMAbstractFactory.getOMFactory();
OMNamespace omNs=fac.createOMNamespace("http://helloworld.com/","hw");
OMElement resp=fac.createOMElement("sayHelloResponse",omNs);
resp.setText(info);
return resp;
}
}
|
3)在
WebContent"META-INF"建立
services.xml,代码如下。
services.xml
<?xml version="1.0" encoding="UTF-8"?>
<service name="HelloWorld">
<description>
This is a sample Web Service.
</description>
<parameter name="ServiceClass" locked="false">sample.HelloWorld</parameter>
<operation name="sayHello">
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</operation>
</service>
|
4)将目录
sample和目录
META-INF组织如下(新建目录
example)。
+-example
|-------- +-sample
|------- HelloWorld.class
|---------+-META-INF
|-------services.xml
5)打包生成
aar文件。
在命令符环境下,将当前目录转到
example。
jar cvf HelloWorld.aar . //注意最后一个点,在当前目录下生成
HelloWorld.aar。
6)在
Eclipse中启动
Tomcat,在地址栏下键入
[url]http://localhost:8080/axis2/[/url]。选择
Administration,输入用户名
admin,密码
axis2。选择左侧工具栏
Tools- Upload Service,上传之前打包的
HelloWorld.aar。该文件将在
<CATALINA_HOME>/webapps/axis2"WEB-INF"services目录下。
7)编写客户端检验代码。新建
Java Project,取名为
ZZaxisClient。右键点击项目名,选择
Properties-Java Build Path-Add Library-User Library-axis2。
8)新建
package example.client。建立
TestClient.java,代码如下。
TestClient.java
package example.client;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
public class TestClient {
private static EndpointReference targetEPR=new EndpointReference
("http://localhost:8080/axis2/services/HelloWorld");
public static OMElement getSayHelloOMElement(){
OMFactory fac=OMAbstractFactory.getOMFactory();
OMNamespace omNs=fac.createOMNamespace("http://helloworld.com/","hw");
OMElement method=fac.createOMElement("sayHello",omNs);
method.setText("ZJ");
return method;
}
public static void main(String[] args){
try{
Options options=new Options();
options.setTo(targetEPR);
ServiceClient sender=new ServiceClient();
sender.setOptions(options);
OMElement sayHello=TestClient.getSayHelloOMElement();
OMElement result=sender.sendReceive(sayHello);
System.out.println(result);
}
catch(Exception axisFault){
axisFault.printStackTrace();
}
}
}
|
9)测试,
run TestClient.java as Java Application。结果:
<hw:sayHelloResponse xmlns:hw="http://helloworld.com/"
xmlns:tns="http://ws.apache.org/axis2">
ZJHelloWorld!
</hw:sayHelloResponse>
1.
HelloWorld做了些什么?
HelloWorld功能非常简单,在客户端输入你的姓名,本例中为
ZJ。参数传递到服务器端后,经过处理将返回
name+"HelloWorld!",本例中为
ZJ HelloWorld!
2.服务器端文件
HelloWorld.java
HelloWorld.java
package sample;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
public class HelloWorld {
//读取
client端
getSayHelloOMElement()方法传递的参数
in。
public OMElement sayHello(OMElement in){
//将
in转换为
String。
String name=in.getText();
String info=name+"HelloWorld!";
//创建
response SOAP包。
OMFactory fac=OMAbstractFactory.getOMFactory();
// OMNamespace指定此
SOAP文档名称空间。
OMNamespace omNs=fac.createOMNamespace("http://helloworld.com/","hw");
//创建元素
sayHello,并指定其在
omNs指代的名称空间中。
OMElement resp=fac.createOMElement("sayHelloResponse",omNs);
//指定元素的文本内容。
resp.setText(info);
return resp;
}
}
|
3.
services.xml部署文件
services.xml
<?xml version="1.0" encoding="UTF-8"?>
//下面定义服务名
<service name="HelloWorld">
<description>
This is a sample Web Service.
</description>
// ServiceClass指定
Java Class的位置,即实现服务的类。
<parameter name="ServiceClass" locked="false">sample.HelloWorld</parameter>
// operation 与
Java Class中方法名对应。
<operation name="sayHello">
// messageReceiver看下文注解。
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</operation>
</service>
|
注解:
消息交换模式。
目前
Axis2支持三种模式:
In-Only、
Robust-In和
In-Out。
In-Only消息交换模式只有
SOAP请求,而不需要应答;
Robust-In消息交换模式发送
SOAP请求,只有在出错的情况下才返回应答;
In-Out消息交换模式总是存在
SOAP请求和应答。本例使用
In-Out模式。
4.客户端文件
TestClient.java
TestClient.java
package example.client;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
public class TestClient {
// targetEPR指定打包的
Service(
.aar文件
)
在容器中的物理位置。
private static EndpointReference targetEPR=new EndpointReference
("http://localhost:8080/axis2/services/HelloWorld");
public static OMElement getSayHelloOMElement(){
//创建
request SOAP包。
OMFactory fac=OMAbstractFactory.getOMFactory();
// OMNamespace指定此
SOAP文档名称空间。
OMNamespace omNs=fac.createOMNamespace("http://helloworld.com/","hw");
//创建元素
sayHello,并指定其在
omNs指代的名称空间中。
OMElement method=fac.createOMElement("sayHello",omNs);
//指定元素的文本内容。
method.setText("ZJ");
return method;
}
public static void main(String[] args){
try{
Options options=new Options();
options.setTo(targetEPR);
ServiceClient sender=new ServiceClient();
sender.setOptions(options);
OMElement sayHello=TestClient.getSayHelloOMElement();
//发出
request SOAP,
//同时将得到的远端由
sayHello方法返回的信息保存到
result。
//通过
services.xml能准确找到
sayHello方法所在的文件。
OMElement result=sender.sendReceive(sayHello);
}
catch(Exception axisFault){
axisFault.printStackTrace();
}
}
}
|
5
.Axis2
简介
Apache Axis2 是
Axis的后续版本,是新一代的
SOAP引擎。
Axis2的主要特点有:
1)采用名为
AXIOM(
AXIs Object Model)的新核心
XML 处理模型,利用新的
XML解析器提供的灵活性按需构造对象模型。
2)支持不同的消息交换模式。目前
Axis2支持三种模式:
In-Only、
Robust-In和
In-Out。
In-Only消息交换模式只有
SOAP请求,而不需要应答;
Robust-In消息交换模式发送
SOAP请求,只有在出错的情况下才返回应答;
In-Out消息交换模式总是存在
SOAP请求和应答。
3)提供阻塞和非阻塞客户端
API。
4)支持内置的
Web服务寻址
(WS-Addressing) 。
5)灵活的数据绑定,可以选择直接使用
AXIOM,使用与原来的
Axis 相似的简单数据绑定方法,或使用
XMLBeans、
JiBX 或
JAXB 2.0 等专用数据绑定框架。
6)新的部署模型,支持热部署。
7)支持
HTTP,
SMTP,
JMS,
TCP传输协议。
8)支持
REST (Representational State Transfer)。
6.
Axis2 支持的规范包括:
-SOAP 1.1 and 1.2
-Message Transmission Optimization Mechanism (MTOM), XML Optimized Packaging (XOP) and SOAP with Attachments
-WSDL 1.1, including both SOAP and HTTP bindings
-WS-Addressing (submission and final)
-WS-Policy
-SAAJ 1.1
有关
Axis2更加详细的介绍,可以访问
Axis2网站
http://ws.apache.org/axis2。
发表评论
-
javaBean与Map<String,Object>互转
2014-02-25 13:32 6771. 为什么要实现javaBean与Map<Strin ... -
java反射工具类
2014-02-25 09:18 1057import java.lang.reflect.Field ... -
java反射详解
2014-02-24 14:07 348http://www.cnblogs.com/rollenho ... -
svn如何清除已保存的用户名密码
2014-02-24 10:41 9111.Windows 删除以下目录C:\Documents a ... -
HttpURLConnection 上传大文件 内存溢出 out of memery
2014-02-23 11:35 1802项目中遇到问题总结 ... -
基于https,HttpsURLConnection客户端代码调用
2014-02-23 11:36 883今天遇到配置了SSL的服务器,不知道怎么写客户端调用,费了 ... -
利用resteasy框架构建rest webservice----第五波:java代码调用乱码解决方案
2014-02-23 11:36 763工作原因加家里事情多,很久木有更新了,也木有按照预定计 ... -
利用resteasy框架构建rest webservice----第四波:resteasy与spring真正集成发布我们的restful webservice
2014-02-21 10:05 1193原本以为根据文档集成resteasy与spring很简单,但 ... -
用resteasy框架构建rest webservice----第三波:实现文件上传---非form提交方式(实例、教程)
2014-02-21 10:04 2054因为工作原因,很久时间木有更新了,不怕有时间久继续更新: ... -
利用resteasy框架构建rest webservice----第二波:使用不同的方式让resteasy发布我们的restful webservice 服务
2014-02-21 10:02 1844基于resteasy版本:2.2.1.GA 第一波让我们一 ... -
利用resteasy框架构建rest webservice----第一波:快速构建HelloWorld(实例、教程)
2014-02-21 10:01 921转载请标明出处:http://blog.csdn.net/c ... -
RESTEasy入门
2014-02-21 10:00 734RESTEasy是JBoss的开源项目之一,是一个REST ... -
聚簇索引(Clustered Index)和非聚簇索引 (Non- Clustered Index)
2014-02-17 09:54 1033索引的重要性数据库性能优化中索引绝对是一个重量级的因素,可 ... -
数据库中索引的优缺点
2014-02-17 09:46 406一、索引的概念 索 ... -
eclipse项目中的java文件导入后变为空心J问题
2014-02-11 10:19 3671今天从SVN更新了一下整个工程,更新完成后发现工程的目录顺序 ... -
Java获取客户端真实IP地址
2013-12-25 11:00 857在JSP里,获取客户端的IP地址的方法是:reques ... -
idea总结
2013-12-20 23:09 7561. IDEA内存优化 先看看 ... -
Java 位运算符
2013-12-11 09:49 903写道 位运算符用来对二进制位进行操作 ,Java中提 供 ... -
CAS单点登录
2013-12-09 15:24 869一、简介 1、cas ... -
jira的详细安装和破解
2013-12-04 11:04 1232jira的详细安装和破解 以下是在Windows20 ...
相关推荐
用AXIS2作为客户端调用webService的demo:本人亲测可用,eclipse工程java项目包含完整代码和完整jar包, 只要用eclipse导入项目即可,运行控制台显示success或者false字符串,说明OK。
1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web服务接口。这个类通常会遵循SOAP协议,定义服务操作。例如,你可以创建一个名为`HelloWorldService`的类,包含一个`sayHello`...
本文将详细介绍如何使用Eclipse集成开发环境和AXIS2框架创建并调用WebService。首先,我们需要准备以下基础工具: 1. Eclipse IDE:这是一个强大的Java开发平台,支持多种开发任务,包括Web服务的开发和调试。 2. ...
总的来说,使用Axis2客户端调用WebService接口是一种常见的开发实践,通过精简jar包可以优化项目的体积,提高部署效率。理解这个过程并掌握如何精简jar包,对于任何涉及到Web服务的开发工作都是十分有益的。
用AXIS2作为客户端调用webService的demo:亲测可用,eclipse工程java项目包含完整代码和完整jar包, 只要用eclipse导入项目即可,运行控制台显示success或者false字符串,说明OK。
描述了axis2如何调用webservice,jar齐全,首先保证webservice的url能正常访问,下载资源后直接运 行com.axis2.test.TestAxis2的main方法即可。 axis2功能十分强大,可接受方法中返回任何类型,比如List, Set,...
Java和Axis2是开发Web服务客户端的重要工具,用于调用基于SOAP协议的Web服务。本文将深入探讨如何利用Java和Axis2库来实现这一功能,同时结合提供的代码示例进行详细解析。 首先,Web服务是一种通过网络进行通信的...
标题中的“Java通过Axis调用天气预报的WebService”是指使用Java编程语言,通过Apache Axis库来访问和使用公开的天气预报Web服务。Apache Axis是一个开放源码的SOAP(简单对象访问协议)工具包,它允许开发者创建和...
Apache Axis2是Apache软件基金会开发的一个Web服务引擎,它提供了高效且灵活的Web服务解决方案。 **Web服务**是一种在互联网上不同系统间交换数据的方式,它允许应用程序之间通过标准协议进行通信。Web服务通常使用...
本方法是用axis1.4技术,实现java客户端调用webservice。已经可实现过可行的,如果不行可加我QQ号302633进行详细解析。
本文将深入探讨如何使用Axis2来动态地调用Web Service,并通过分析`WebServiceInvoker.java`这个文件来理解其实现原理。 1. **Java动态调用Web Service**: 在Java中,动态调用Web Service主要涉及到JAX-WS(Java ...
本文将详细介绍如何利用MyEclipse 8.5集成开发环境及其内置的Axis2插件来构建WebService服务,并演示如何通过客户端调用这些服务。 #### 二、准备工作 首先,确保您的开发环境中已经安装了以下软件: 1. Java ...
标题“Axis2教程和java调用webservice的各种方法总结”表明了本文档主要聚焦于两个核心内容:一是Axis2框架的使用教程,二是Java语言调用Web服务的不同方法的综合概述。 描述中的“Axis2教程”暗示了会详细讲解Axis...
本文将详细介绍如何在Android应用中利用Axis2来调用Web Service。 **一、Android与Web Service交互基础** 1. **SOAP(Simple Object Access Protocol)**: 是一种轻量级的协议,用于交换结构化的和类型化的信息。...
本文将详细介绍如何使用 Apache Axis2 在 Tomcat 6.0 上发布 WebService 服务端,并实现客户端的调用。通过本教程,您将学会一种简单易行的方法来部署和调用 WebService。 #### 二、环境搭建 ##### 1. 下载并配置 ...
本文将详细介绍如何使用Axis2调用WebService接口,并基于提供的jar包"axis2-1.7.6"进行说明。 **一、Axis2简介** Axis2是Apache软件基金会开发的一个Web服务引擎,它基于SOAP(Simple Object Access Protocol)和WS...
axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例
Java Axis 直接调用webservice 接口工具类, 无需根据wsdl编译客户端,需要axis相关包,测试使用axis 1.4, 附demo引入axis包后直接可以测试;