一.WebService服务器接口:
类实现接口的方法,并通过cxf生成一个xml文件,供外部访问。总之:外部系统只需通过访问xml文件中的指定方法,并传参,就可以调用对应的java文件中的方法。
二.项目结构
三.代码:
UserService接口:
package com.casit.service;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
//指定Service名称和命名空间
@WebService(name = "UserService",targetNamespace = "http://service.webServiceDemo.juli.com")
public interface UserService {
//暴露该方法为一个接口方法,放入xml中
@WebMethod
//返回值的名字,可不定义,在xml中浏览
@WebResult(name = "out")
public String getUser(@WebParam(name = "in0"//指定参数名字
,targetNamespace = "http://service.webServiceDemo.juli.com"//指定该参数的命名空间,**必要**) String name);
@WebMethod
@WebResult(name = "String")
public String listUser();
@WebMethod
@WebResult(name = "String")
public String deleteUser(@WebParam(name = "id") String id);
@WebMethod
@WebResult(name = "String")
public String updateUser(@WebParam(name = "id") String id);
}
UserServiceImpl实现类:
package com.casit.impl;
import com.casit.service.UserService;
import javax.jws.WebService;
import java.util.Date;
@WebService(name="UserService",targetNamespace="http://service.webServiceDemo.juli.com",endpointInterface="com.casit.service.UserService")
public class UserServiceImpl implements UserService {
@Override
public String getUser(String name) {
String result = "";
try {
result = "UserName:" + name + " - Date:"+ new Date();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
@Override
public String listUser() {
String result = "";
try {
result = "Date:"+ new Date();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
@Override
public String deleteUser(String id) {
String result = "";
try {
result = "UserId:" + id + " - Date:"+ new Date();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
@Override
public String updateUser(String id) {
String result = "";
try {
result = "UserId:" + id + " - Date:"+ new Date();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
Appication:
package com.casit;
import com.casit.impl.UserServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import javax.xml.ws.Endpoint;
@SpringBootApplication
@Slf4j
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).run(args);
//指定访问改xml的地址,和对应的接口文件
Endpoint.publish("http://localhost:9001/service/userServiceImpl",new UserServiceImpl());
}
}
效果图:
访问getUser方法的返回值:
客户端访问接口,请看前面一篇文章