今天学了发布.aar格式的WebService。
aar跟jar是差不多形式的文件,可以使用相同的命令生成。
开发代码:jdk1.8+tomcat9.0
发布时一直报“ Faulty Services”,原因也不显示,只能一行一行的替换测试。
原因大概如下:
1、确定版本是jdk1.8的,以前用的是jdk9,一直报错。(不知道是不是axis2不支持jdk9,知道的大神请科普下。)
2、services.xml的写法一定要按照他的示例格式编写。网上有很多其他的编写方式,也许对他们当时的版本是对的,但我这里是错的。请按照下面的方式写。
<?xml version="1.0" encoding="UTF-8"?>
<service name="TyzfSvc" targetNamespace="http://ws.apache.org/ax2">
<description>Web Service</description>
<parameter name="ServiceClass">com.jwt.TyzfSvc</parameter>
<operation name="sayHelloNew">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="sayHelloToPersonNew">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="updateData">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
</operation>
</service>
附上java代码
package com.jwt;
public class TyzfSvc {
public String sayHelloNew(){
return "hello";
}
public String sayHelloToPersonNew(String name){
if(name==null){
name = "nobody";
}
return "hello,"+name;
}
public void updateData(String data){
System.out.println(data+" 已更新。");
}
}
生成aar文件的方式:
jar cvf ws.aar . (aar后面是 空格+点)