当前位置 : 主页 > 网页制作 > Nodejs >

使用CXF开发WebService服务器端接口学习笔记一

来源:互联网 收集:自由互联 发布时间:2021-06-24
直接上代码 第一步:新建一个接口类 package com.xiaowen;import javax.jws.WebService;@WebServicepublic interface HelloWorld {public String say(String str);} 第二步,建立接口的实现类 package com.xiaowen.impl;import j

直接上代码

第一步:新建一个接口类

package com.xiaowen;

import javax.jws.WebService;

@WebService
public interface HelloWorld {

	public String say(String str);
}

第二步,建立接口的实现类

package com.xiaowen.impl;

import javax.jws.WebService;

import com.xiaowen.HelloWorld;
@WebService
public class HelloWorldService implements HelloWorld{

	public String say(String str) {
		return "hello"+str;
	}

}
第三步:建立服务端的测试类

package com.xiaowen.test;

import javax.xml.ws.Endpoint;

import com.xiaowen.HelloWorld;
import com.xiaowen.impl.HelloWorldService;

public class HelloWorldTest {
    public static void main(String[] args) {
		System.out.println("webService start");
		HelloWorld implementor=new HelloWorldService();
		//注意一下,下面是我的ip地址,你要自己查看自己的IP地址
		String address="http://192.168.1.100/helloWorld";
		Endpoint.publish(address, implementor);//JDK自带
		System.out.println("webService started");
	}
}

运行程序效果图如下:

注意:Endpoint是Jdk自身实现的WebService

我们使用浏览器访问:http://192.168.1.100/helloWorld?wsdl,效果如下


说明已经成功调用了webservice接口;

这里的wsdl 是 Web Services Description Language的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。WSDL是Web Service的描述语言,用于描述Web Service的服务,接口绑定等,为用户提供详细的接口说明书。
下面我们介绍使用CXF来实现webservice接口:

配置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.xiaowen</groupId>
  <artifactId>ServiceDemo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>
    <dependency>
		<groupId>org.apache.cxf</groupId>
		<artifactId>cxf-core</artifactId>
		<version>3.1.5</version>
	</dependency>

  	<dependency>
		<groupId>org.apache.cxf</groupId>
		<artifactId>cxf-rt-frontend-jaxws</artifactId>
		<version>3.1.5</version>
	</dependency>
	
	<dependency>
		<groupId>org.apache.cxf</groupId>
		<artifactId>cxf-rt-transports-http-jetty</artifactId>
		<version>3.1.5</version>
	</dependency>
  </dependencies>
</project>

测试服务类

package com.xiaowen.test;

import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

import com.xiaowen.HelloWorld;
import com.xiaowen.impl.HelloWorldService;

public class HelloWorldTest {
    public static void main(String[] args) {
		System.out.println("webService start");
		HelloWorld implementor=new HelloWorldService();
		//注意一下,下面是我的ip地址,你要自己查看自己的IP地址
		String address="http://192.168.1.100/helloWorld";
		//Endpoint.publish(address, implementor);//JDK自带
		JaxWsServerFactoryBean factoryBean=new JaxWsServerFactoryBean();
		factoryBean.setAddress(address);
		factoryBean.setServiceClass(HelloWorld.class);
		factoryBean.setServiceBean(implementor);
		factoryBean.create();
		System.out.println("webService started");
	}
}
效果图



项目结构图

网友评论