IntelliJ IDEA java开发 WebService
测试的功能是通过访问solr服务器,获取相关信息,然后以webservice的形式供客户端访问来获取数据。通过查询资料,现在把过程记录如下:
1、环境
IntelliJ IDEA 2017.2.6
JAVA 1.8
Tomcat 9.0.0.M26
2、新建web服务项目



在src下面建立web_test包,在下面建立类SolrData

修改配置:

增加SolrData类的配置

完善SolrData类里面的代码:
import java.io.IOException;
import java.util.List; import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.Cluster;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.ClusteringResponse; import org.apache.solr.common.SolrDocumentList;
/**
* @Author:sks
* @Description:
* @Date:Created in 14:37 2018/2/1
* @Modified by:
**/
public class SolrData {
public String getData(String id){ System.out.println("hello:"+id);
// getTxtFromTextFile(id);
String urlString = "http://localhost:8983/solr/test";
SolrClient solr = new HttpSolrClient.Builder(urlString).build();
System.out.println("solr");
//使用这个对象做查询
SolrQuery params = new SolrQuery();
//查询所有数据
params.set("qt", "/clustering");
params.setQuery("*:*");
params.setStart(0);
params.setRows((int)getDocTotalCount(solr)); try {
QueryResponse queryResponse = solr.query(params);
ClusteringResponse clr = queryResponse.getClusteringResponse();
List<Cluster> list = clr.getClusters();
//拿到聚类数据集合,返回查询结果 String txt = "";
for (Cluster c : list) {
//类别标签
List<String> lblist = c.getLabels();
for (String lb : lblist) {
System.out.println(lb);
}
//聚类文档ID
List<String> doclist = c.getDocs();
for (String doc : doclist) {
System.out.println(" " + doc);
}
}
}
catch (SolrServerException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
} return "getdata";
}
/**
* @Author:sks
* @Description:获取文档总数
* @Date:
*/
private long getDocTotalCount(SolrClient solr ) {
long num = 0;
try {
SolrQuery params = new SolrQuery();
params.set("q", "*:*");
//params.setQuery("*:*");
QueryResponse rsp = solr.query(params);
SolrDocumentList docs = rsp.getResults();
num = docs.getNumFound();
} catch (SolrServerException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
return num;
}
}
引入jar,提取准备好所有的jar包,放在项目的lib文件夹下


同时对libraries也引用上面的jar包


配置tomcat



配置Artifacts



运行服务

在浏览器输入:http://localhost:8080/services



生成wsdl,需要注意的是,在生成wsdl之前,一定要先配置好tomcat先运行以下,保证浏览器上能访问在生成wsdl



3、web服务客户端




删除example包,直接在client包下面建client_test代码如下:
package client; import client.SolrDataServiceLocator;
import client.SolrData_PortType; import javax.xml.rpc.ServiceException;
import java.rmi.RemoteException;
/**
* @Author:sks
* @Description:
* @Date:Created in 14:58 2018/2/1
* @Modified by:
**/
public class client_test {
public static void main(String[] argv){
try {
SolrDataServiceLocator sdl = new SolrDataServiceLocator();
SolrData_PortType service = sdl.getSolrData();
String result = service.getData("1234");
System.out.println(result);
}catch (ServiceException e)
{
e.printStackTrace();
}
catch (RemoteException e)
{
e.printStackTrace();
}
}
}


4、测试
启动solr_web服务
启动solr_web_clent客户端
服务端输出结果:

参考:https://www.cnblogs.com/sekai/articles/5952735.html
相关链接:利用IDEA创建Web Service服务端和客户端
IntelliJ IDEA java开发 WebService的更多相关文章
- C# 开发XML Web Service与Java开发WebService
一.web service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量 ...
- 纯 Java 开发 WebService 调用测试工具(wsCaller.jar)
注:本文来自hacpai.com:Tanken的<纯 Java 开发 WebService 调用测试工具(wsCaller.jar)>的文章 基于 Java 开发的 WebService ...
- Java开发WebService的几种方法--转载
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...
- java开发webservice的几种方式(转载)
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2方式 Axis是apache下一个开源的webservice开发 ...
- java开发webservice的几种方式
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...
- Java开发WebService(使用Java-WS)
前言: 初学Java,因为工作需要,直接跳到开发WebService.以前用.NET开发过WebService,对比一下,Java的WebService开发部署难度高了不止一个档次.网上的教程各式各异 ...
- java 开发webservice
这几天用java开发一个webservice,搞死了.java果然很难侍候! 传说java搞webservice,有好几种途径(为什么不是一种?要搞这么多种,让人一听,头都大了.当然啦,生物多样性总是 ...
- JAVA开发WEBSERVICE方式
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2方式 Axis是apache下一个开源的webservice开发 ...
- Java开发Webservice的组件
参考:http://bbs.csdn.net/topics/390900831 转自:http://blog.csdn.net/dragoo1/article/details/50759222 htt ...
随机推荐
- hdu 3435(KM算法最优匹配)
A new Graph Game Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 将Sphinx的日志放置到/dev/shm里需要注意的事情
可以采用定时器控制,清空日志的办法: 几种快速清空文件内容的方法: $ : > filename #其中的 : 是一个占位符, 不产生任何输出. $ > filename $ echo “ ...
- 使用vue2.0 vue-router vuex 模拟ios7操作
其实你也可以,甚至做得更好... 首先看一下效果:用vue2.0实现SPA:模拟ios7操作 与 通讯录实现 github地址是:https://github.com/QRL909109/ios7 如 ...
- vue2.0项目结构和打包发布
先来一张项目结构图: 本地开发测试运行的命令是npm run dev 打包发布的命令是 npm run build生成的dist文件夹里的文件就是我们可以布置到服务上的文件 但是呢,这打包好的文件的文 ...
- .NET ORM SqlQuery
查询 1.SqlQuery 用于执行原生SQL和存储过程 //转成list List<Student> list1 = db.SqlQuery<Student>("s ...
- 转:攻击JavaWeb应用[2]-CS交互安全
转:http://static.hx99.net/static/drops/tips-164.html 攻击JavaWeb应用[2]-CS交互安全 园长 · 2013/07/08 14:54 注:本节 ...
- PowerShell 获取系统的硬件信息
1.获取系统的BIOS的信息: Get-WMIObject -Class Win32_BIOS 2.获取内存信息: Get-WMIObject -Class Win32_PhysicalMemory ...
- 对Webservice的理解
eb Service使用的是 SOAP (Simple Object Access Protocol)协议 soap协议只是用来封装消息用的.封装后的消息你可以通过各种已有的协 ...
- 「NOI2018」归程
「NOI2018」归程 题目描述 本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定. 魔力之都可以抽象成一个 >\(1\) 个节点. \(m\) 条边的无向连通图(节点的编号从 \( ...
- [BZOJ4710][JSOI2011]分特产(组合数+容斥原理)
4710: [Jsoi2011]分特产 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 395 Solved: 262[Submit][Status] ...