webservice 初步
最近在写项目时,用到了webservice,顺便学了一下,略有感想,在此分享。 @WebService
public interface MyService {
public Integer add(Integer a,Integer b);
UserPojo get(String name,String password);
}
//pojo实体
public class UserPojo {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
定义接口的实现类 @WebService(endpointInterface = "com.peng.test.MyService")
public class MyServiceImpl implements MyService {
@Override
public Integer add(Integer a,Integer b) {
return a+b;
}
@Override
public UserPojo get(String name,String password) {
UserPojo userPojo=new UserPojo();
userPojo.setName(name);
userPojo.setPassword(password);
return userPojo;
}
}
编写服务端 public class WebTest {
public static void main(String args[]){
String address="http://localhost:8990/test";
Endpoint.publish(address,new MyServiceImpl());
}
}
运行main方法,访问http://localhost:8990/test?wsdl 如上图, portTypes表示服务的接口,通过input 和output分别表示参数和返回值 types是定义的类型,访问一下http://localhost:8990/test?xsd=1,如图 描述了add和get方法的参数和返回值,及类型。 这是让大家了解一下wsdl 下面写一下方法调用的test import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.MalformedURLException;
import java.net.URL;
public class WebClient {
public static void main(String args[]) {
try {
URL url = new URL("http://localhost:8990/test?wsdl");
QName qName = new QName("http://test.peng.com/","MyServiceImplService");
Service service=Service.create(url,qName);
MyService myService=service.getPort(MyService.class);
System.out.println("加法:"+myService.add(4,3));
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
输出为:加法7,上面列子可以发现我们只要知道服务的地址和接口就可以调用其他系统提供的接口,地址很容易知道,但是接口不行,不一样的语言的描述不一样,同时也不可能给我代码,这时我们发现wsdl就是用xml描述的对象,我们得到xml可不可以转化为对象,待续 ,太困了,睡觉了! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- AngularJS:未捕获错误:[$inject:modulerr]未能实例化模块
- angularjs – ng重复过滤器,用于未定义属性的位置
- 如何删除docker0接口
- Symbian学习笔记8 之 初探WebServices API的使用(上)
- twitter-bootstrap-3 – 字体很棒,带有图标语法的bootstrap
- angularjs – 无法实例化模块ngCookies
- permissions – unix / setfacl:设置目录默认acl以获得正确
- SHELL脚本编程基础
- angular – 模板解析错误:无法绑定到’routerLink’,因为它
- [原创]webservice 学习笔记,axis2 传递对象数组,非stub方