Java WebService服务端开发
JWS
- 介绍: JWS-WebService.JWS是Java语言实现的一种webservice,用来开发和发布服务,它是一个轻量级的WS框架,实现起来也非常的简单
- 实例:
- 定义接口,并将接口发布成webservice:
package org.zttc.service;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface IMyService {
@WebResult(name="addResult")
public int add(@WebParam(name="a")int a,@WebParam(name="b")int b);
@WebResult(name="loginUser")
public User login(@WebParam(name="username")String username,@WebParam(name="password")String password);
}
- 定义接口实现:
package org.zttc.service;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
@WebService(endpointInterface="org.zttc.service.IMyService")
public class MyServiceImpl implements IMyService {
@Override
public int add(int a, int b) {
System.out.println(a + "+" + b + "=" + (a + b));
return a+b;
}
@Override
public User login(@WebParam(name = "username") String username,
@WebParam(name = "password") String password) {
System.out.println(username + " is logging");
User user = new User();
user.setId("1");
user.setUsername(username);
user.setPassword(password);
return user;
}
}
- 发布服务:
package org.zttc.service;
import javax.xml.ws.Endpoint;
public class MyServer {
public static void main(String[] args){
String address = "http://localhost:8888/ns";
Endpoint.publish(address, new MyServiceImpl());
}
}
- 编写测试类代码:
package org.zttc.service;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
public class TestClient {
public static void main(String[] args){
try {
//创建访问wsdl服务地址的url
URL url = new URL("http://localhost:8888/ns?wsdl");
//通过QName指明服务的和具体信息
QName sname= new QName("http://service.zttc.org/","MyServiceImplService");
//创建服务
Service service = Service.create(url,sname);
//实现接口
IMyService ms =service.getPort(IMyService.class);
System.out.println(ms.add(12, 33));
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Axis2
CXF Apache CXF = Celtix + XFire
- XFire在2007年后已停止更新。正式更名为Apache CXF,亦可以说是XFire2.0
Java WebService客户端开发
使用JDK命令生成客户端调用代码
wsimport -p com.xxx -keep http://10.1.108.155/Services/MobileRegisterService.svc?wsdl
URI地址必须要以wsdl结尾
客户端调用代码:(MobileRegisterService,IMobileRegisterService主要使用这个类和接口)
MobileRegisterService mrs = new MobileRegisterService();
IMobileRegisterService imrs = webServicesSoap.getBasicHttpBindingIMobileRegisterService();
imrs.method();
使用axis2中bin目录下的wsdl2java.bat生成
wsdl2java -uri http://10.1.108.155/Services/MobileRegisterService.svc?wsdl -o D:\ -p com.xxx
- 一、JAX-WS:全称是JavaTM API forXML-Based Web Services
JAX-RS :全称是 JavaTM API forRESTful Web Services
关于JAX-WS与JAX-RS两者是不同风格的SOA架构。前者以动词为中心,指定的是每次执行函数。而后者以名词为中心,每次执行的时候指的是资源。 - 二、JAX-RS是JAVA EE6 引入的一个新技术。 JAX-RS即Java API for RESTful Web Services,是一个Java 编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。JAX-RS使用了Java SE5引入的Java标注来简化Web服务的客户端和服务端的开发和部署。
JAX-WS规范是一组XML web services的JAVA API,JAX-WS允许开发者可以选择RPC-oriented或者message-oriented 来实现自己的web services。
网友评论