使用axis2进行webservice编程也是比较容易的,下面主要讲解一些axis2实现的过程,以及遇到的问题解决。
一,下载最新的axis2包axis2-1.6.2-bin.zip,和eclipse开发插件工具axis2-eclipse-codegen-wizard.zip,axis2-eclipse-service-archiver-wizard.zip,并解压,将解压后的文件axis2-eclipse-codegen-wizard和axis2-eclipse-service-archiver-wizard放入Myeclipse的安装目录dropins里面。启动Myeclipse。从名称可以看出axis2-eclipse-codegen-wizard是代码生成向导,axis2-eclipse-service-archiver-wizard是服务打包向导。
二,新建web project,并将axis2-1.6.2-bin.zip解压后的lib目录下的jar文件引入工程中,编写服务端代码,如下:
package axis.com.demo;
public class HelloServer {
public String sayHello(String name){
return "Hello kitty you are, " + name + "!";
}
}
打开Myeclipse,操作如下。
一,首先进行wsdl的生成和发布。进行File——》new ——》others——》Axis2 Winzards——》Axis2 Code Generator。选择Generate a WSDL from a java source file.并设置classNmae和class目录,并点击test class loading.
点击下一步,直到进入如下页面,并设置生成wsdl的名称和目录如下:
。
正常的你会看到:
二,进行服务打包。File——》new ——》others——》Axis2 Winzards——》Axis2 Server Archiver,进入服务发布打包页面。
填写你的class地址。
下一步选择skip wsdl.在下一步选择依赖的jar包,如果没有,则继续下一步。默认自从生成XML文件。接下来填写服务名,和服务端的class文件所在目录。如下:
点击load,加载进来。设置要打的包的路径,这个路径一般设置在文件web-inf下面,且文件名应该和web.xml的设置保存一致。如下所示:
点击下一步就发布完成了。
在Myeclipse工程中正常的显示为:
再讲讲遇到的问题,可能在weblogic,遇到客户端访问报错的问题,其实也是服务端的jar包冲突,解决办法是优先使用web工程的jar包,可在WEB-INF下加上一个weblogic.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90">
<container-descriptor>
<prefer-web-inf-classes>
true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>
true表示是优先使用web工程的jar文件。
web.xml内容(没有建立的话需要新建)如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:j2ee="http://java.sun.com/xml/ns/j2ee">
<servlet>
<servlet-name>AxisServlet</servlet-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>
</web-app>
客户端调用代码如下:
package axis.com.demo;
import javax.xml.namespace.QName;
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.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
public class HelloClient {
public static void main(String[] args) {
try {
// 获得客户端
RPCServiceClient serviceClient = new RPCServiceClient();
// 可以在该对象中设置服务端的验证信息
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference("http://127.0.0.1:7001/TestAxis2/services/HelloServer?wsdl");
options.setTo(targetEPR);
// 在创建QName对象时,QName类的构造方法的第一个参数表示WSDL文件的命名空间名,也就是<wsdl:definitions>元素的targetNamespace属性值
QName opAddEntry = new QName("http://demo.com.axis","sayHello");
// 参数,如果有多个,继续往后面增加即可,不用指定参数的名称
Object[] opAddEntryArgs = new Object[] {"ltf" };
// 返回参数类型,这个和axis1有点区别
// invokeBlocking方法有三个参数,其中第一个参数的类型是QName对象,表示要调用的方法名;
// 第二个参数表示要调用的WebService方法的参数值,参数类型为Object[];
// 第三个参数表示WebService方法的返回值类型的Class对象,参数类型为Class[]。
// 当方法没有参数时,invokeBllocking方法的第二个参数值不能是null,而要使用new Object[]{}
// 如果被调用的WebService方法没有返回值,应使用RPCServiceClient类的invokeRobust方法,
// 该方法只有两个参数,它们的含义与invokeBlocking方法的前两个参数的含义相同
Class[] classes = new Class[] { String.class };
System.out.println(serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0]);
} catch (Exception e) {
e.printStackTrace();
}
}
}
进入http://localhost:8080/TestAxis2/services/HelloServer?wsdl就可验证是否发布成功了。
- 大小: 39.5 KB
- 大小: 44.7 KB
- 大小: 44.6 KB
- 大小: 17.9 KB
- 大小: 89.1 KB
- 大小: 60.1 KB
- 大小: 21 KB
分享到:
相关推荐
WebService大讲堂之Axis2 WebService大讲堂之Axis2 WebService大讲堂之Axis2 WebService大讲堂之Axis2 WebService大讲堂之Axis2 WebService大讲堂之Axis2
Axis2是Apache软件基金会提供的一款高性能、轻量级的WebService引擎,它是在Axis1.x的基础上重新设计的产物,不仅支持SOAP1.1和SOAP1.2协议,还扩展了对RESTful WebService的支持,以及Spring框架和JSON技术的集成。...
1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web服务接口。这个类通常会遵循SOAP协议,定义服务操作。例如,你可以创建一个名为`HelloWorldService`的类,包含一个`sayHello`...
【WebService大讲堂之Axis2系列教程】是一个深入讲解 Axis2 这个流行WebService引擎的教程,适合初学者。Axis2作为一个强大的工具,它在多种场景下被广泛应用,包括发布服务端Java类的方法以供不同客户端调用,促进...
axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例
【WebService大讲堂之Axis2及其它Web Service资料】 在IT行业中,Web Service是一种通过互联网进行应用程序间交互的标准技术。它允许不同的系统之间共享数据和服务,不受编程语言、操作系统或硬件平台的限制。本...
AXIS2远程调用WebService是Java开发者在进行分布式服务交互时常用的一种技术。本文将详细介绍如何使用Eclipse集成开发环境和AXIS2框架创建并调用WebService。首先,我们需要准备以下基础工具: 1. Eclipse IDE:这...
本系列教程将涵盖从基础到高级的Axis2使用,着重于如何在无需配置文件的情况下,使用Axis2开发和发布WebService。 首先,Axis2的下载和安装是使用这一技术的首要步骤。Axis2的最新版本可以通过官方网址下载,分别...
标题中的“axis2+spring webservice”指的是使用Apache Axis2框架与Spring框架集成来开发Web服务。Apache Axis2是Java环境中广泛使用的Web服务引擎,它提供了高性能、灵活且可扩展的架构。Spring框架则是一个全面的...
webservice大讲堂之axis2.rar webservice大讲堂之axis2.rar webservice大讲堂之axis2.rar webservice大讲堂之axis2.rar webservice大讲堂之axis2.rar webservice大讲堂之axis2.rar
2. **添加Axis依赖**:在`pom.xml`文件中,我们需要添加Axis的相关依赖。这包括`axis`, `axis-saaj`, 和 `axis-wsdl4j`等。 3. **创建Web服务接口**:定义一个Java接口,这个接口代表我们的Web服务。接口中定义了将...
首先,让我们理解Spring与Axis2集成的基础知识。Spring框架提供了一个服务导向架构(SOA)的支持,允许开发者轻松地创建和消费Web服务。而Axis2是Apache软件基金会的一个项目,专门用于处理Web服务的生成、部署和...
标题中的“axis2webservice接口例子”指的是使用Apache Axis2框架创建的一个Web服务接口实例。Apache Axis2是Java平台上的一款强大的Web服务开发工具,它提供了高效、灵活且可扩展的环境来构建和部署Web服务。这个...
【标题】中的“基于axis2实现的webservice简单实现(客户端+服务端)”表明了本文将探讨如何使用Apache Axis2框架来创建和消费Web服务。Apache Axis2是Apache软件基金会开发的一个Web服务引擎,它提供了高效且灵活的...
webService 生成插件axis2- idea-plugin-1.7.8
详细webservice大讲堂axis2
- **配置Axis2**:正确配置Axis2路径是基础。 - **编写服务端代码**:实现具体的业务逻辑。 - **部署服务端**:通过Eclipse插件快速部署。 - **测试服务端**:验证服务端是否正常工作。 - **构建客户端**:根据WSDL...