import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
/**
-
测试接口
-
@author Μr.ηobοdy
-
@date 2019-12-29
*/
@WebService(name = “UserService”, // 暴露服务名称
targetNamespace = “http://service.nobody.com” // 命名空间,一般是接口的包名倒序
)
public interface UserService {
@WebMethod
@WebResult(name = “String”, targetNamespace = “”)
String addUser(@WebParam(name = “username”) String username, @WebParam(name = “age”) int age);
}
3:服务端接口实现
package com.nobody.service.impl;
import javax.jws.WebService;
import org.springframework.stereotype.Component;
import com.nobody.service.UserService;
/**
-
测试接口实现
-
@author Μr.ηobοdy
-
@date 2019-12-29
*/
@WebService(serviceName = “UserService”, // 与接口中指定的name一致
targetNamespace = “http://service.nobody.com”, // 与接口中的命名空间一致,一般是接口的包名倒
endpointInterface = “com.nobody.service.UserService” // 接口地址
)
@Component
public class UserServiceImpl implements UserService {
@Override
public String addUser(String username, int age) {
return “Add user success,username:” + username + “,age:” + age;
}
}
4:CXF配置
package com.nobody.config;
import javax.xml.ws.Endpoint;
import org.apache.cxf.Bus;
import org.apache.cxf.jaxws.EndpointImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.nobody.service.UserService;
/**
-
cxf配置
-
@author Μr.ηobοdy
-
@date 2019-12-29
*/
@Configuration
public class CxfConfig {
@Autowired
private Bus bus;
@Autowired
private UserService userService;
@Bean
public Endpoint endpoint() {
EndpointImpl endpoint = new EndpointImpl(bus, userService);
endpoint.publish(“/UserService”);
return endpoint;
}
}
5:wsdl文件
默认服务在host:port/工程服务名/services/所在的路径下。因为本工程没设置服务名,故此接口发布路径为/services/UserService,wsdl文件路径为:
http://localhost:8080/services/UserService?wsdl
服务启动后,在浏览器输入以上地址即可看到wsdl文件:
6:客户端调用
package com.nobody.controller;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(“demo”)
public class DemoController {
@GetMapping(“test”)
public String test(@RequestParam String username, @RequestParam int age) {
String result = null;
结尾
学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。