2021-12-16_WebService_step02__Java基础之IO流(系统信息)_冰雹猜想(简单未记录)
一、web service step02
4.1.2 添加Apache CXF依赖
pom.xml
4.1.3 写服务的接口
对外发布服务的接口:
package com.itheima.service; import javax.jws.WebService; /** * 对外发布服务的接口 * 对于对外发布服务的接口,需要@WebService注解,用来标识一个web service接口 * @author konglc * @date 2021/12/16 7:54 */ @WebService public interface HelloService { /** * 对外发布服务的接口的方法 */ public String sayHello(String name); }
接口的实现类:
package com.itheima.service.impl; import com.itheima.service.HelloService; /** * 接口的实现 * @author konglc * @date 2021/12/16 7:57 */ public class HelloServiceImpl implements HelloService { @Override public String sayHello(String name) { return name + ",Welecom to Itheima!"; } }
4.1.4 发布服务
package com.itheima; import com.itheima.service.impl.HelloServiceImpl; import org.apache.cxf.jaxws.JaxWsServerFactoryBean; /** * @author konglc * @date 2021/12/16 8:00 */ public class Server { public static void main(String[] args) { // 发布服务的工厂 JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean(); // 设置服务地址 factory.setAddress("http://localhost:8000/ws/hello"); // 设置服务类 factory.setServiceBean(new HelloServiceImpl()); // 发布服务 factory.create(); System.out.println("发布服务成功,端口8000......"); } }
在编辑器的Server.java内,右击“Run 'Service.main()'”。运行结果:
发布服务成功,端口8000......
4.1.5 访问wsdl说明书
在服务地址后面加“?wsdl”:
http://localhost:8000/ws/hello?wsdl
4.2 客户端
4.2.1 创建项目
4.2.2 添加依赖
4.2.3 服务接口
package com.itheima.service; import javax.jws.WebService; /** * 对外发布服务的接口 * 对于对外发布服务的接口,需要@WebService注解,用来标识一个web service接口 * @author konglc * @date 2021/12/16 13:25 */ @WebService public interface HelloService { /** * 对外发布服务的接口的方法 */ public String sayHello(String name); }
4.2.4 远程访问服务端
package com.itheima; import com.itheima.service.HelloService; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; /** * @author konglc * @date 2021/12/16 13:28 */ public class Client { public static void main(String[] args) { // 服务接口访问地址:http://localhost:8000/ws/hello // 创建cxf代理工厂 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); // 设置远程访问服务端地址 factory.setAddress("http://localhost:8000/ws/hello"); // 设置接口类型 factory.setServiceClass(HelloService.class); // 对接口生成代理对象 HelloService helloService = factory.create(HelloService.class); // 代理对象类型 class com.sun.proxy.$Proxy34 // [Java代理:1.静态代理;2.动态代理(jdk接口代理、cglib子类代理)] // 形如$Proxy34,是jdk接口代理 // 形如$CGLIB123,是cglib子类代理 System.out.println(helloService.getClass()); // 远程访问服务端方法 String content = helloService.sayHello("Jet"); System.out.println(content); } }
在编辑器的Client.java内,右击“Run 'Client.main()'”。运行结果:
class com.sun.proxy.$Proxy34
Jet,Welecom to Itheima!
二、Java视频:P249:IO流(系统信息)
import java.util.*; import java.io.*; class SystemInfo { public static void main(String[] args) throws IOException { Properties prop = System.getProperties(); // System.out.println(prop); // prop.list(System.out); prop.list(new PrintStream("systeminfo.txt")); } }
三、算法题目problem220:冰雹猜想(简单未记录代码)。