简单创建webservice接口并采用rpc方式调用
简单创建webservice接口并采用rpc方式调用
一、简单创建webservice接口
1.新建一个maven项目
2.创建一个包
3.创建一个接口
在新建的包下创建接口
点击查看代码
public interface FirstWebService {
String getInfo(String text1, String text2, String text3);
}
4.创建实现类和实现方法
这里简单写一个实现方法,比如把三个传入的参数拼接起来再返回
点击查看代码
//表示该实现类就是webservice服务
@WebService(name = "firstWebService")
public class FirstWebServiceImpl implements FirstWebService {
public String getInfo(String text1, String text2, String text3) {
return text1 + text2 + text3;
}
}
5.发布服务
点击查看代码
//发布服务
public class PublicServerTest {
public static void main(String[] args) {
//参数1:服务被访问的url ip+端口号+服务名
//参数2:开放接口的实现类对象
Endpoint.publish("http://localhost:9099/getAddress", new FirstWebServiceImpl());
System.out.println("public success");
}
}
6.运行
运行成功,以后可以查看webservice接口的wsdl说明文档
在浏览器中输入代码中设置好的服务的url
在访问url后面加上?wsdl可以访问查看该webservice接口的wsdl说明文档
在这个文档里可以查看命名空间和方法名称
二、采用rpc方式调用webservice接口
1.新建一个包
我这里新建一个com.webservice.test包
2.在pom文件里加入如下依赖
点击查看代码
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-local</artifactId>
<version>1.7.8</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-http</artifactId>
<version>1.7.8</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-spring</artifactId>
<version>1.7.8</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-adb</artifactId>
<version>1.7.8</version>
</dependency>
3.新建一个类,写如下主函数
点击查看代码
public class webserviceRpcTest {
public static void main(String[] args) throws AxisFault {
/** 调用webser中nextNum方法 **/
//第一步 创建RPCServiceClient对象
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
//第二步 输入url
EndpointReference target = new EndpointReference(
"http://localhost:9099/getInfo");
options.setTo(target);
//第三步 命名空间和方法
QName addEntry = new QName("http://webservicetest/", "getInfo");
//第四步 传入方法的参数,没有的话定义空数组
Object[] addEntryArgs = new Object[]{"I", "am", "fine"};
//第五步 方法的返回值,可以不存在
Class[] classes = new Class[] {String.class};
//第六步 调用接口
Object[] invokeBlocking = serviceClient.invokeBlocking(addEntry, addEntryArgs, classes);
System.out.println(invokeBlocking[0].toString());
}
}
4.运行结果
成功输出