必威体育Betway必威体育官网
当前位置:首页 > IT技术

Web项目通过webservice编写一个接口,部署在远程服务器上

时间:2019-08-13 08:12:07来源:IT技术作者:seo实验室小编阅读:60次「手机版」
 

webservice接口

在我的上一片文章中,我在本地新建了一个普通的类来编写WebService,使用终端类 Endpoint 发布这个WebService,以此来实现让其他类调用这个接口,实现接口中定义的功能。

通过普通类写一个简单的WebService并发布

那么如果是Web项目的话,应该怎么编写并发布WebService呢?

Web项目可以使用监听器或者Servlet来发布WebService,本片实例我用Servlet来发布WebService。

首先新建一个 Dynamic Web Project 项目,之后创建三个类文件:

  • 接口
  • 接口实现类
  • 入口类

在这里插入图片描述

这三个类文件可以放在一个包下,或者像上图那样分别放在对应的包下,推荐后一种

IWebService.java

package cn.xuzihui.itf;
import javax.jws.WebService;

@WebService
public interface IWebService {
	String sayHello(String name);
}

WebServiceImpl.java

package cn.xuzihui.impl;
import java.text.simpledateformat;
import java.util.Date;
import javax.jws.WebService;
import cn.xuzihui.itf.IWebService;

@WebService
public class WebServiceImpl implements IWebService {
	@Override
	public String sayHello(String name) {
		Date date = new Date();
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String hello = df.format(date) + "," + name + "call the inferface!";
		return hello;
	}
}

注意要在IWebService.java、WebServiceImpl.java文件中加上@WebService的注解,位置如上所示

WebServiceCalledByServlet.java

package cn.xuzihui.controller;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.xml.ws.Endpoint;
import cn.xuzihui.impl.WebServiceImpl;

@WebServlet(value="", loadOnStartup=0)
public class WebServiceCalledByServlet extends HttpServlet{
	private static final long serialversionuid = -2864381365175258589L;
	
	public void init() {
		String address = "http://127.0.0.1:8888/WebServiceWithServlet";
		Endpoint.publish(address, new WebServiceImpl());
		System.out.println("使用WebServiceCalledByServlet发布webservice成功!");
	}
}

这样就完成了WebService的创建,接下来我们要把这个Web项目导出为 war file ,并部署在远程Tomcat服务器上。

选择项目并右击,选择导出

在这里插入图片描述

选择导出的类型为 WAR file

点击下一步

在这里插入图片描述

选择导出的位置,点击完成就生成了 war 文件

在这里插入图片描述

那么接下来就是把这个WebServiceWithServlet.war 文件上传到我们的远程Tomcat服务器,当上传到Tomcat服务器的webAPP文件夹中,Tomcat服务器会自动初始化并发布WebService,如下图所示:

在这里插入图片描述

访问我们服务器的Tomcat的管理页面,点击 Manager APP

在这里插入图片描述

你会看到已经存在了我们刚才上传的项目

在这里插入图片描述

我们在浏览器的地址栏中输入WebService入口类文件中定义的address地址,注意,要把ip地址改成你的远程服务器的ip,并且在地址的后面加上 “?wsdl”。

在这里插入图片描述

那么如果出现了上图类似的界面,那么就说明WebService发布成功。

接下来呢,我们就要实现在本地调用这个远程接口。

在本地再新建一个普通的 Java Project 项目

在这里插入图片描述

鼠标右击这个项目,选择新建->其他->Web Service Client

在这里插入图片描述

在弹出的选项框中的 Service definition 填写上一步在浏览器地址栏中填写的URL

在这里插入图片描述

点击完成,系统会自动为我们创建一些必要的类

在这里插入图片描述

红框圈起来的是系统创建的类,上面那个包是下一步我们需要创建的

我们需要自己在创建一个类来实现这些调用这些新创建的类,以到达调用接口的目的

WSClient.java

package cn.xuzihui.client;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import cn.xuzihui.impl.WebServiceImpl;
import cn.xuzihui.impl.WebServiceImplServiceLocator;

public class WSClinet {
	public static void main(String[] args) throws ServiceException, RemoteException {
		WebServiceImpl serviceImpl = new WebServiceImplServiceLocator().getWebServiceImplPort();
		String sayWhat = serviceImpl.sayHello("迪迦");
		System.out.println(sayWhat);
	}

}

右键点击运行程序

在这里插入图片描述

在结果上会有报错信息,可能是缺少两个jar包

这里写图片描述

需要下载这两个jar包导入到 Client 项目下

下载地址

https://download.csdn.net/download/bronzehammer/10608421

在项目中新建一个 lib文件夹,把这两个jar包放在lib中,并在项目中添加外部jar

这里写图片描述

这里写图片描述

之后我们重新启动服务,应该就不会有报错了

在这里插入图片描述

相关阅读

联众打码平台接口调用(初版)

联众打码平台接口调用(初版) 由于工作需要在使用某网站是需要验证码登录,所以选择了打码平台(当然如果有条件,可以使用机器学习),在这里

Web service服务(接口)

Web service服务(接口)一.定义Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用

电脑显卡4种接口类型:VGA、DVI、HDMI、DP

电脑显卡全称显示接口卡(Video card,Graphics card),又称为显示适配器(Video adapter),显示器配置卡简称为显卡,是个人电脑最基本组成部分

初入sqlite3 学习汇总(c接口)

介绍      SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立

新浪支付接口对接的总结

最近需要对接新浪支付,看到一篇文章感觉不错,先转载参考。原文:http://blog.csdn.net/lzlovez/article/details/511672861.接口介入

分享到:

栏目导航

推荐阅读

热门阅读