转载:http://www.iteye.com/topic/1121971#
Axis开发WebService 指南
一、 开发环境
l MyEclipse 6.5
l Tomcat 6.0.24
l Jdk 1.6.0_22
l Axis1.4
二、Axis简介:
axis全称Apache EXtensible Interaction System 即 阿帕奇 可扩展交互系统。Axis本质上就是一个SOAP引擎,提供创建 服务器端、客户端和网关SOAP操作的基本框架。Axis目前版本是为Java编写的,不过为C++的版本正在开发中。但Axis并不完全是一个SOAP引擎,它还是一个独立的SOAP服务器和一个嵌入Servlet引擎(例如Tomcat)的服务器。
下载1.4 Final 链接地址:
三、Java开发Webservice 示例
Axis支持三种WebService 的部署和开发,分别为:
1、Dynamic Invocation Interface(DII)方式
2、Dynamic Proxy方式
3、Stubs方式
Stubs方式是最通用的做法,又因其灵活的特点,建议使用这种方式.
下面是详细的开发步骤:
1) 创建web工程
1、 MyEclipse 6.5创建web project,取名为axistest;
2、 新建文件夹 文件夹名为lib ,然后 将下载下来的axis 其 axis-1_4\lib 目录下的jar 拷贝到ib目录下,将这些jar引入到axistest classpath 下,如图:
2) .编写Server 程序
1、 新建class,包取名:server 类名:HelloServer
声明sayHello方法,具体代码如下:
package Server; /** * 开发webservice: 服务器端 * @author lvqing * */ public class HelloServer { public String sayHello(String name){ return "hello:"+name; } }
结构图:
2、配置web.xml
web.xml文件很容易配置,拷贝axis包里面的WebService示例的web.xml配置到我们的工程中的web.xml中就可以了。
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- =============== Axis Webservice =============--> <servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <servlet> <servlet-name>AdminServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class> <load-on-startup>100</load-on-startup> </servlet> <servlet> <servlet-name>SOAPMonitorService</servlet-name> <servlet-class>org.apache.axis.monitor.SOAPMonitorService</servlet-class> <init-param> <param-name>SOAPMonitorPort</param-name> <param-value>5001</param-value> </init-param> <load-on-startup>100</load-on-startup> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/servlet/AxisServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>SOAPMonitorService</servlet-name> <url-pattern>/SOAPMonitor</url-pattern> </servlet-mapping> <mime-mapping> <extension>wsdl</extension> <mime-type>text/xml</mime-type> </mime-mapping> <mime-mapping> <extension>xsd</extension> <mime-type>text/xml</mime-type> </mime-mapping> </web-app>
3) 部署 web project
利用MyEclipse部署工具 将我们的项目部署到Tomcat\webapp目录下
部署完成后,访问:http://localhost:8080/axistest/servlet/AxisServlet
4) 创建 deploy.wsdd文件
这个文件可以在任意目录下创建,但是为了维护方便 ,我将它创建在axistest 项目Src目录下
示例代码:
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <!-- 这里的helloserver为wsdd描述符中的ServiceNamespace --> <service name="helloserver" provider="java:RPC"> <!-- 这里的ClassName就是我的服务类了,这个服务主要功能就是传递一个自定义的对象 --> <parameter name="className" value="Server.HelloServer" /> <!-- 这里描术的意思是,此服务类中的方法全部享出来. value值为*号 如果你只想让你的客户端只能调用其中一个方法时,value值改为方法名就可以了. --> <parameter name="allowedMethods" value="*" /> </service> </deployment>
5) 生成 server-config.wsdd 文件
在这里我们写一个批处理脚本deploy.bat,它会根据deploy.wsdd文件生成server-config.wsdd文件。server-config.wsdd 文件只需要一次生成,以后添加新服务,直接在server-config.wsdd 文件中配置。
server-config.wsdd 文件是WebService的核心配置文件,Web服务能否发布,很大程度上取决于次文件的配置。
这里 我们写个批处理脚本deploy.bat:
set Axis_Lib=D:\workspace\MEE\NMA\axistest\lib 设置axis.jar包所在路径,因为要用到AdminClient set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% 执行java的环境 set Axis_Servlet=http://localhost:8080/axistest/servlet/AxisServlet 注意axistest是你自己的项目名 %Java_Cmd% org.apache.axis.client.AdminClient -l %Axis_Servlet% deploy.wsdd pause;
接下来,在执行deploy.bat前,请确保Tomcat 服务已运行,否则在Dos命令窗口中看到如下错误:
看到如下图运行的结果,表明已经在Tomcat\webapps\axistest\WEB-INF目录下生成了server-config.wsdd文件. (Activation.jar 和 mail.jar这两个包虽然没有加入到CLASSPATH中,但是不影响我们的开发。)
好了,大功告成了!webservice 发布成功了,重启Tomcat,我们来测试一下,看是否发布成功.
在IE上输入: http://localhost:8080/axistest/services/helloserver?wsdl
看到如图结果表明发布成功:
并且,当我们再次访问:http://localhost:8080/axistest/servlet/AxisServlet的时候,发现多出了一个服务
6) 生成客户端Client wsdl文件
在IE上输入: http://localhost:8080/axistest/services/helloserver?wsdl ,点击文件 → 另存为,存到axistest 项目Src:目录下
7)WSDL2Java
为了方便,我们写个批处理脚本 WSDL2Java.bat
set Axis_Lib=D:\workspace\MEE\NMA\axistest\lib set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% set Output_Path=D:\workspace\MEE\NMA\axistest\src set Package=client %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o %Output_Path% -p %Package% helloserver.wsdl pause;
解释下此命令:
%Output_Path%是客户端文件输出路径,%Package%是包名
这时 我们可以看到 axistest 工程下已经生成了客户端程序,如图:
8) 客户端测试代码:
package client; import java.net.URL; /** * webservice 客户端 程序 */ public class ClientTest { public static void main(String[] args) { HelloServerService service = null; HelloServer helloServer = null; try { System.out.println("connect......"); String StrPortAddress = "http://localhost:8080/axistest/services/helloserver"; URL portAddress = new URL(StrPortAddress); // 得到客户端服务 service = new HelloServerServiceLocator(); // 得到客户端stub helloServer = service.gethelloserver(portAddress); // 测试服务方法 String resultStr = helloServer.sayHello("iteye"); System.out.println(resultStr); } catch (Exception e) { e.printStackTrace(); } finally { System.out.println("End."); } } }
终结 ……
相关推荐
- 访问 URL `http://localhost:8080/axis/HelloWorld.jws?wsdl` 来验证 WSDL 文件是否正确生成。 - 编写客户端程序调用 Web Service。例如创建一个 `YLClient` 类来调用服务: ```java public class YLClient { ...
在Java开发中, Axis1.4 是一个广泛使用的开源框架,用于构建和部署Web服务。本文将深入探讨如何使用Axis1.4与Java项目整合,搭建Web服务客户端,并通过具体的客户端代码实例进行详解。 首先,我们需要理解Web服务...
return "Hello, World!"; } } ``` 2. 生成WSDL:然后,使用Axis的`wsdl2java`工具,根据这个Java类生成相应的WSDL(Web Service Definition Language)文件。WSDL文件描述了Web服务的接口和消息格式。 3. 创建...
例如,你可以创建一个名为`HelloWorld`的接口,包含一个`sayHello`方法,然后实现这个接口。 3. **生成WSDD文件**:Web Service Deployment Descriptor (WSDD)是Axis用来配置和部署Web服务的XML文件。你可以使用...
在Java世界中,Axis1.4是一个非常经典的Web服务(Web Service)框架,它用于创建和部署SOAP(Simple Object Access Protocol)服务。本教程将深入探讨如何在Java服务端配置Axis1.4来构建和运行Web服务。我们将不涉及...
- Axis 1.4 文档通常包含一些简单的示例,如 "Helloworld" 示例,帮助初学者快速理解如何创建和调用 Web 服务。 7. **社区和文档** - 开源性质使得 Axis 拥有丰富的社区资源,包括在线论坛、邮件列表和教程,为...
【AxisWebService实例】是关于使用Axis1.4框架创建并部署Web服务的实践教程。Axis是Apache软件基金会开发的一个开源工具,主要用于简化SOAP(简单对象访问协议)Web服务的开发。在本文中,我们将深入探讨如何利用...
此压缩包不仅仅只有文档,还有axis1.4相关资源。详细描述了如何在tomacat6.0下发布webService,并以此为基础,进一步重点描述了如何在Weblogic10.3下发布webService。网上多半描述的是Weblogic8.1版本,而很少有关...
- 将`src`文件夹下的`Helloworld.java`文件复制到`WebRoot`文件夹下,并重命名为`Helloworld.jws`。 - 修改`Helloworld.java`文件内容如下: ```java public class Helloworld { public String getName(String ...
- **部署服务**:将上述Java代码保存为`HelloWorld.jws`,并放置在Tomcat的webapps/axis目录下。 - **生成WSDL**:访问`http://localhost:8080/axis/HelloWorld.jws?wsdl`,查看自动生成的WSDL文件。 ##### 2. 编写...
在Java开发环境中,Apache Axis 1.4 是一个广泛使用的Web服务框架,它简化了Web服务的创建、部署和使用过程。而WTP(Web Tools Platform)是Eclipse IDE中的一个插件集合,为开发Web应用程序提供了强大的支持。本...
public class HelloWorld implements javax.xml.rpc.HelloWorld { public String getGreeting() { return "Hello, World!"; } } ``` - **配置`web.xml`**: ```xml <servlet-name>HelloWorld ...
2. **部署服务**:将`HelloWorld.java`编译成`.class`文件后,将其放置于Axis的部署目录下,并重命名为`HelloClient.jws`。 3. **生成WSDL**:通过访问`http://localhost:8080/axis/HelloClient.jws?wsdl`,可以查看...
set Axis_Servlet=http://localhost:8090/myAxis/services/HelloWorld?wsdl %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -u %Axis_Servlet% ``` 4. **代码生成结果** 运行批处理文件后,将在指定目录下生成多个...
2. **创建Web Service**:对着`HelloWorld`类右键选择`Web Services > Create Web Service`,配置运行时为Axis2,服务器为之前创建的Server,按照提示完成操作。 **验证服务** 1. **查看服务状态**:访问`...
本文档主要介绍了如何使用Axis工具生成客户端代码,以Myeclipse7.0为开发环境,axis1.4为工具版本,以及tomcat5.5作为应用服务器,JDK版本为1.5。 首先,你需要下载并解压Axis的jar包,例如axis-bin-1_4.zip。解压...
2. **创建 Web 服务**: 选中 `HelloWorld` 类,右键 `Web Services > Create Web Service`,配置运行时环境为 Axis2,选择服务器,然后完成设置。 **验证服务** 1. **启动服务器**: 点击 Start Server 启动 Tomcat...