写webservice实例的时候去看了
soap协议
wsdl网络服务描述语言
webservice 支持soap协议,有的时候会用到简单对象传输协议
开始实例
环境 java1.6_13+myeclipse
java为了支持webservice 生成服务端和客户端的一些代码,提供了一些命令
wsgen 生成服务端时会用到
wsimort 生成客户端会用到
1.新建一个java项目
2.新建一个文件目录
3.编写服务接口和实现类
@WebService
public interface UserService {
public void getUser();
@WebMethod
public User getUserById(@WebParam(name = "id") int id);
@WebMethod
public List<User> getUserByArgs(@WebParam(name = "user") User user);
@WebMethod
public String getExistUser(@WebParam(name = "id") int id);
}
实现类
package com.wbs.serviceimp;
import java.util.List;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import com.wbs.dao.Dao;
import com.wbs.daoimp.DaoImp;
import com.wbs.entity.User;
import com.wbs.service.UserService;
@WebService(endpointInterface = "com.wbs.service.UserService", targetNamespace = "http://javax.wzq.wbs/service/userservicetn",
portName = "userservicepn", serviceName = "userservice2")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public class UserServiceImp implements UserService{
Dao daoimp = new DaoImp();
// @WebMethod
public String getExistUser(int id) {
// TODO Auto-generated method stub
return daoimp.getExistUser(id);
}
// @WebMethod
public void getUser() {
// TODO Auto-generated method stub
daoimp.getUser();
}
// @WebMethod
public List<User> getUserByArgs(User user) {
// TODO Auto-generated method stub
return daoimp.getUserByArgs(user);
}
// @WebMethod
public User getUserById(int id) {
// TODO Auto-generated method stub
return daoimp.getUserById(id);
}
}
4:发布服务
package com.wbs.pulish;
import javax.xml.ws.Endpoint;
import com.wbs.serviceimp.UserServiceImp;
public class WbsPlish {
public static void main(String[] args) {
Endpoint.publish
//发布地址
("http://localhost:8080/service/pluserserivce", new UserServiceImp());
}
}
在运行的过程中 遇到jax-ws getXX方法找不到。
将jdk 升级到jdk-6u17,就解决
http://localhost:8080/service/pluserserivce?wsdl测试,如果成功。有UserServiceImp的wsdl文档
6:编写客户端
6.1新建一个客户端项目
6.2用cmd命令 wsimport 生成客户端代码
在用wsimport命令的时候碰到 java.long.nullpoiterexception,弄了好久,查了一些资料,服务名不能重复serviceName = "userservice2" 。我已经写了个项目,服务名是userservice。
6.3 编写客服点测试代码
package com.wbs.service.client;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import java.util.*;
public class WbsClient {
final QName qname=new QName("http://javax.wzq.wbs/service/userservicetn", "userservice2");
public static void main(String[] args) throws MalformedURLException {
System.out.println("---");
URL url = new URL("http://localhost:8080/service/pluserserivce?wsdl");
System.out.println("---");
WbsClient client = new WbsClient();
client.binduseruserservice(url);
}
public void binduseruserservice(URL url){
System.out.println("---");
Userservice2 userservice=new Userservice2(url,qname);
UserService userserviceimp=userservice.getUserservicepn();
userserviceimp.getUser();
String str=userserviceimp.getExistUser(1);
System.out.println("---"+str);
User user=new User();
List<User> list=userserviceimp.getUserByArgs(user);
for(User u:list){
System.out.println("-name--"+u.getName());
}
User userid=userserviceimp.getUserById(6);
System.out.println("-name--"+userid.getName());
}
}
开启服务端,在运行客户端,就行了
分享到:
相关推荐
WebService教程+实例+代码提示功能WebService实例.rar
本实例包含php调用webservice及myeclipse创建webservice实例全部代码,简单易懂,运行绝对没有问题,文件齐全,导入即可运行,适合webservice初学者
Java使用SOAP获取webservice实例解析 具体实例分析说明。
XFire建立Webservice实例,入门级别,适XFire建立Webservice实例,入门级别,XFire建立Webservice实例,入门级别,适合初学者适合初学者合初学者
Delphi开发ISAPI类型的webservice实例。
C#最简单最完整的webservice实例
java调用webservice实例,初学者值得一看
SSH整合cxf webservice实例
Java WebService服务端开发 WebService实例 简单部署
SAP&Java的Webservice实例
C# webservice 实例 图文与程序 web网站调用 winform调用 访问数据库返回集合
java webservice实例教程ppt,共15讲,java webservice实例教程适合对象:想要学习SOA面向服务编程思想,学习Webservice技术,希望学习系统间通信设计的Java设计开发人员。java webservice实例教程适合于各个层次的...
C#调用WebService实例和开发(wsdl).rar
Myeclipse创建WebService实例-很好用.doc 验证成功
Java中的webService实例 注释详细,简单易懂! 力求用一个简单的例子让大家对webService调用和原理有深入的理解!
Webservice实例,含两种客户端的写法,并且测试测功,对于初学者是个不错的选择。
WebService实例,包含服务端代码与客户端代码,客户端编译方式说明,端口连接异常解决办法