准备:
不论是服务端还是客户端,都要导入相关包,报名如下:
activation.jar
axis-ant.jar
axis.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
jaxrpc.jar
log4j-1.2.8.jar
mail.jar
saaj.jar
wsdl4j-1.5.1.jar
服务端:
写一个类,如下:
package server;
public class Hello {
public String sayHello(String name) {
return name + "\tHello!";
}
}
在web.xml文件中加入以下配置:
<servlet>
<servlet-name>InterfaceService</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
<load-on-startup>7</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>InterfaceService</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
为以上的类配置,建立一个文件deploy.wsdd,加入以下内容:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="Hello" provider="java:RPC">
<parameter name="className" value="server.Hello" />
<parameter name="allowedMethods" value="*" />
</service>
</deployment>
新建文件deploy.bat,内容如下:
set Axis_Lib=E:\apache-tomcat-6.0.26\webapps\axisServer\WEB-INF\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:8888/axisServer/services/InterfaceService
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
在deploy.bat文件所在的目录,用命令提示符运行该文件,运行成功后打开地址:http://localhost:8888/axisServer/services/Hello?wsdl。此时服务端已经完成,将网页内容复制下来。
客户端:
将复制下来的内容放在客户端根目录的wsdl文件夹下的axisServer.xml文件上:
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="http://localhost:8888/axisServer/services/Hello" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8888/axisServer/services/Hello" xmlns:intf="http://localhost:8888/axisServer/services/Hello" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <!--
WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)
-->
- <wsdl:message name="sayHelloResponse">
<wsdl:part name="sayHelloReturn" type="xsd:string" />
</wsdl:message>
- <wsdl:message name="sayHelloRequest">
<wsdl:part name="name" type="xsd:string" />
</wsdl:message>
- <wsdl:portType name="Hello">
- <wsdl:operation name="sayHello" parameterOrder="name">
<wsdl:input message="impl:sayHelloRequest" name="sayHelloRequest" />
<wsdl:output message="impl:sayHelloResponse" name="sayHelloResponse" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="HelloSoapBinding" type="impl:Hello">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="sayHello">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="sayHelloRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://server" use="encoded" />
</wsdl:input>
- <wsdl:output name="sayHelloResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8888/axisServer/services/Hello" use="encoded" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="HelloService">
- <wsdl:port binding="impl:HelloSoapBinding" name="Hello">
<wsdlsoap:address location="http://localhost:8888/axisServer/services/Hello" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
在同等目录下建立WSDL2Java.bat,内容如下:
set Axis_Lib=E:\workspace\axisServerClient\WebRoot\WEB-INF\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=E:\workspace\axisServerClient\src
set Package=server
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% axisServer.wsdl
在该文件所在目录下用命令提示符运行,运行完毕后,在src目录下,会多出一堆文件。建立测试文件测试:
package test;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import server.HelloService;
import server.HelloServiceLocator;
public class WeatherClient {
public static void main(String[] args) {
HelloService service = new HelloServiceLocator();
String info = null;
try {
info = service.getHello().sayHello("July");
} catch (ServiceException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
System.out.println(info);
}
}
运行后会打印:July Hello!
分享到:
相关推荐
axisServer.deploy("HelloWorld", "/WEB-INF/classes/HelloWorld.class"); } } ``` 3. 在`web.xml`中配置Servlet,并设置映射路径。 4. 将项目部署到Tomcat服务器。 步骤四:测试Web Service 1. 访问浏览器中...
axis2服务端的各种写法及客户端的用法及helloworld代码,包配环境部署文件axis2.war 其中 services文件 - - <!-- 实现的服务类,locked 锁定 xsd:false 一种格式 --> ...
【Java Axis2 WebService开发详解】 在Java世界中,开发Web服务经常会选择使用Apache Axis2框架,它是一个高效且灵活的Web服务引擎,允许开发者轻松地创建和部署Web服务。本篇文章将详细介绍如何使用Java和Axis2来...
例如,可以创建一个简单的"Hello World"服务,通过编写XML配置文件和服务接口实现服务发布,然后使用预生成的客户端代码调用服务。 三、Web Service实例应用 1. **服务端创建**:使用Axis2,开发者可以轻松地将...
java org.apache.axis.utils.Java2WSDL -l http://localhost:8080/HelloWorld -n http://example.com/HelloWorld -s HelloWorld -S HelloWorldServer -o HelloWorld.wsdl HelloWorld.class ``` 4. **部署WebService...
创建一个简单的Java类`HelloWorld.java`,其中定义了一个方法`sayHello()`返回字符串"HELLOWORLD!"。将此类编译为`.class`文件,并放置于`tomcat\webapps\axis\WEB-INF\classes`目录下。接着,在`deploy.wsdd`文件中...
- 按照向导逐步设置,最终会在项目的 `src` 目录下生成 `HelloWorld.wsdl` 文件。 #### 三、部署服务端 **3.1 准备部署文件** - 解压 `axis2-1.5-war.zip` 文件中的 `axis2.war`,从中提取 `WEB-INF` 目录下的 `...
URL url = new URL("http://localhost:8080/axis2/services/HelloWorld?wsdl"); QName qname = new QName("http://example.org/", "HelloWorld"); HelloWorld helloWorld = new HelloWorld_Service(url, qname)....
2. **创建服务**:创建一个简单的Java类,比如`HelloWorld.java`,包含一个公共方法如`sayHello(String name)`,返回一句问候语。这个类将作为Web服务的核心。 3. **生成WSDD文件**:WSDD(Web Services Deployment...
例如,创建一个名为`HelloWorld`的类,包含一个`sayHello()`方法。 ```java public class HelloWorld { public String sayHello(String name) { return "Hello, " + name; } } ``` 3. 生成WSDL 使用Axis的`wsdl...
在这个实例中,`test.java`文件就是客户端代码,它使用了生成的Stub来调用`HelloWorld`服务的`sayHello()`方法。启动项目后,运行`test.java`即可看到Web服务的响应。 四、深入理解Axis工具 Axis还提供了其他工具...
- 在项目的目录树中找到`HelloWorld.java`文件,右键选择`WebService > Create WebService`。 - 在弹出的界面中将默认的`Axis`改为`Axis2`,点击`OK`,然后点击`Finish`。 - Eclipse会自动加载相关的文件到项目中,...
HelloWorld helloWorld = stub.sayHello(new HelloWorldLocator()); System.out.println(helloWorld.sayHello()); ``` 在上述代码中,`HelloWorldStub` 是由 Axis1 自动生成的客户端 stub 类,`sayHello()` 方法将...
Helloworld helloworld = new Helloworld(); helloworld.setName("zgx---"); HelloworldResponse resp = helloStub.helloworld(helloworld); System.out.println(resp.get_return()); // 调用OtherService服务...
HelloWorld helloWorld = new HelloWorldService().getHelloWorldPort(); String response = helloWorld.sayHello("World"); System.out.println(response); ``` 3. 运行客户端:执行客户端代码,即可与服务器进行...