项目地址
一、发布一个webservice服务(jdk原生)
1.新建一个webService项目及其文件结构
1.1点击file->Project
1.2修改项目名称,点击finsh即创建webservice服务端项目
1.3文件整体结构
2.编写服务接口
package com.ly.web.service;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService(name = "Login",// 定义Port名称
serviceName = "MyService", // 修改WebService服务名称
targetNamespace = "http://com.soft.ws/my" // 定义命名空间,默认为倒置的包名
)
public interface MyService {
// 提供一个对外公开的服务
@WebMethod(operationName = "authorization")
// 修改方法名
String authorization(@WebParam(name = "userId") String userId,
@WebParam(name = "password") String password);
3.服务实现类(注意返回的数据,就是客户端接收的数据)
package com.ly.web.service.imp;
import com.ly.web.service.MyService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
/**
* 服务实现类
*/
@WebService(endpointInterface = "com.ly.web.service.MyService",
name = "Login",// 定义Port名称
serviceName = "MyService", // 修改WebService服务名称
targetNamespace = "http://com.soft.ws/my" // 定义命名空间,默认为倒置的包名
//服务实现类和接口的注解要一样全
)
public class MyServiceImpl implements MyService {
@WebMethod(operationName = "authorization" // 修改方法名
)
@Override
public String authorization(
@WebParam(name = "userId") String userId,
@WebParam(name = "password") String password) {
if ("admin".equals(userId) && "123456".equals(password)) {
//客户端接收的数据
return "http://localhost:8089/myservice";
}
return "error";
}
}
4.发布服务
运行下面的代码 发布WebService服务
package com.ly.web.main;
import com.ly.web.service.MyService;
import com.ly.web.service.imp.MyServiceImpl;
import javax.xml.ws.Endpoint;
public class MyPublisher {
public static void main(String[] args) {
//指定服务url
String url = "http://localhost:8089/myservice";
//指定服务实现类
MyService server = new MyServiceImpl();
//采用命令行发布者Endpoint发布服务
Endpoint.publish(url, server);
}
}
5.浏览器查看是否发布成功
打开浏览器地址栏输入:http://127.0.0.1:8089/myservice?wsdl
结果如下:
二、客户端调用方式
1、新建客户端项目
点击file->project(注意:这里是建立一个webservice的客户端)
修改项目名称,点击finsh即完成创建
2、点击finsh,默认会弹出一个窗口,如果,没有弹出该窗口,则项目右键->Webservices->Genereta Java Code From Wsdl,则可弹出
该窗口如下:配置完成后,点击OK即可(该操作是自动创建客户端代码创建)
创建项目目录如下:
打开WsClient.java进行编辑,(authorization(“admin”,“123456”)方法就是之前服务端定义的方法)
package com.service.main;
import com.service.MyService;
import com.service.MyServiceLocator;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;
public class WsClient {
public static void main(String[] args) throws Exception {
MyServiceLocator service = new MyServiceLocator();
String tony = service.getLoginPort().authorization("admin","123456");
System.out.println(tony);
}
}