axis 客户端调用jax-rs 服务端时传参数问题
接口服务端的方法:
@Produces("application/xml")
@Consumes("application/xml")
@Path("login")
@Singleton
public class HelloServiceImpl implements HelloService {
@POST
@Path("userVerify")
@Produces("application/xml")
@Consumes("application/xml")
public int add(int a, int b) {
System.out.println(a + "+" + b + "=" + (a+b));
return a+b;
}
}
axis客户端调用方式
String oaurl="http://127.0.0.1:8888/myHelloService?wsdl";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(oaurl));
call.setOperationName(new QName("http://startdima.com.cn/", "getEacSsoValidateName"));
//call.setOperationName("getEacSsoUserSystemName");// WSDL里面描述的接口名称
//这种方式掉可以
//call.addParameter("arg0", org.apache.axis.encoding.XMLType.XSD_ANY,
// javax.xml.rpc.ParameterMode.IN);
//call.addParameter("arg1", org.apache.axis.encoding.XMLType.XSD_ANY,
// javax.xml.rpc.ParameterMode.IN);
//这种方式不行
call.addParameter("a", org.apache.axis.encoding.XMLType.XSD_ANY,
javax.xml.rpc.ParameterMode.IN);
call.addParameter("b", org.apache.axis.encoding.XMLType.XSD_ANY,
javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型
String result = (String)call.invoke(new Object[] { "1","2" });
System.out.println("----->"+result);