• webService之helloword(java)


    webservice 远程数据交互技术

        1.导入jar包(如果是 maven项目导入项目坐标)

        2.创建服务

        3.测试服务

    我们使用maven来做测试服务

    pom.xml文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>com.baidu.webservicetest01</groupId>
    	<artifactId>webservicetest01</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<!-- jdk版本1.7 -->
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-compiler-plugin</artifactId>
    				<version>2.3.2</version>
    				<configuration>
    					<source>1.7</source>
    					<target>1.7</target>
    				</configuration>
    			</plugin>
    		</plugins>
    	</build>
    	<dependencies>
    		<!-- cxf  ws开发包 -->
    		<dependency>
    			<groupId>org.apache.cxf</groupId>
    			<artifactId>cxf-rt-frontend-jaxws</artifactId>
    			<version>3.0.1</version>
    		</dependency>
    			<!-- jetty  服务器包 -->
    		<dependency>
    			<groupId>org.apache.cxf</groupId>
    			<artifactId>cxf-rt-transports-http-jetty</artifactId>
    			<version>3.0.1</version>
    		</dependency>
    		<!-- 使用log4j日志实现 -->
    		<dependency>
    			<groupId>org.slf4j</groupId>
    			<artifactId>slf4j-log4j12</artifactId>
    			<version>1.7.12</version>
    		</dependency>
    
    		<!-- 使用rs客户端 -->
    		<dependency>
    			<groupId>org.apache.cxf</groupId>
    			<artifactId>cxf-rt-rs-client</artifactId>
    			<version>3.0.1</version>
    		</dependency>
    	</dependencies>
    </project>
    

      服务接口

    package com.baidu.test;
    
    import javax.jws.WebMethod;
    import javax.jws.WebService;
    
    @WebService
    public interface TestInterf {
    	@WebMethod
    	public void eat();
    }

    服务实现类

    package com.baidu.test;
    import javax.jws.WebService;
    @WebService
    public class TestImp implements TestInterf {
    	public void eat() {
    		System.out.println("该吃饭了");
    	}
    
    }

    开启服务:

    package com.baidu.test;
    import javax.xml.ws.Endpoint;
    public class PublishTest {
    	public static void main(String[] args) {
    		TestInterf tt=new TestImp();
    		String address="http://localhost:9991/TestInterf";
    		Endpoint.publish(address, tt);
    		System.out.println("服务启动了");
    	}
    }

    新建项目  和服务器的包结构必须相同

    测试项目的 测试接口和服务器的接口必须一致

    package com.baidu.test1;
    import javax.jws.WebMethod;
    import javax.jws.WebService;
    @WebService  //标识可以连接服务
    public interface TestInterf {
    	@WebMethod
    	public void eat();
    }
    

      

    测试服务

    package com.baidu.test1;
    
    import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
    
    public class Test02 {
    	public static void main(String[] args) {
    		// 编写客户端 调用发布WebService服务
    		JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();
    		jaxWsProxyFactoryBean.setServiceClass(TestInterf.class);
    		jaxWsProxyFactoryBean.setAddress("http://localhost:9991/TestInterf");
    		// 创建调用远程服务代理对象
    		TestInterf proxy = (TestInterf) jaxWsProxyFactoryBean.create();
    		proxy.eat();
    	}
    }
    

      pom.xml  客户pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>com.baidu.webservicetest02</groupId>
    	<artifactId>webservicetest02</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.3.2</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    	<dependencies>
    	
    		
    		<!-- 要进行jaxws 服务开发 -->
      		<dependency>
    			<groupId>org.apache.cxf</groupId>
    			<artifactId>cxf-rt-frontend-jaxws</artifactId>
    			<version>3.0.1</version>
    		</dependency>
    
    		<!-- 内置jetty web服务器  -->
    		<dependency>
    			<groupId>org.apache.cxf</groupId>
    			<artifactId>cxf-rt-transports-http-jetty</artifactId>
    			<version>3.0.1</version>
    		</dependency>
    		
    		<!-- 日志实现 -->
    		<dependency>
    			<groupId>org.slf4j</groupId>
    			<artifactId>slf4j-log4j12</artifactId>
    			<version>1.7.12</version>
    		</dependency>
    	</dependencies>
    
    </project>
    

      

  • 相关阅读:
    数学中求余数问题
    点击事件后根据url保持相应导航高亮
    TP5和TP3.2的使用区别
    在已部署好的docker环境下配置nginx项目路径
    Tp5整理
    cookies、sessionStorage和localStorage的异同点
    CSS的长度单位
    Linux sed识别HTML标签
    css样式读取
    seller vue配置路径相对路径【组件 只写简单路径】
  • 原文地址:https://www.cnblogs.com/fjkgrbk/p/webService.html
Copyright © 2020-2023  润新知