测试的功能是通过访问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的更多相关文章

  1. C# 开发XML Web Service与Java开发WebService

    一.web service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量 ...

  2. 纯 Java 开发 WebService 调用测试工具(wsCaller.jar)

    注:本文来自hacpai.com:Tanken的<纯 Java 开发 WebService 调用测试工具(wsCaller.jar)>的文章 基于 Java 开发的 WebService ...

  3. Java开发WebService的几种方法--转载

    webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...

  4. java开发webservice的几种方式(转载)

    webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2方式 Axis是apache下一个开源的webservice开发 ...

  5. java开发webservice的几种方式

    webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...

  6. Java开发WebService(使用Java-WS)

    前言: 初学Java,因为工作需要,直接跳到开发WebService.以前用.NET开发过WebService,对比一下,Java的WebService开发部署难度高了不止一个档次.网上的教程各式各异 ...

  7. java 开发webservice

    这几天用java开发一个webservice,搞死了.java果然很难侍候! 传说java搞webservice,有好几种途径(为什么不是一种?要搞这么多种,让人一听,头都大了.当然啦,生物多样性总是 ...

  8. JAVA开发WEBSERVICE方式

    webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2方式 Axis是apache下一个开源的webservice开发 ...

  9. Java开发Webservice的组件

    参考:http://bbs.csdn.net/topics/390900831 转自:http://blog.csdn.net/dragoo1/article/details/50759222 htt ...

随机推荐

  1. Message Queue中的推与拉(转)

    Message Queue的设计和实现(7)http://mp.weixin.qq.com/s/zQdDBAHu1UgJJzxH2eCHgQ 数据发送中的推与拉. 当MQ要把数据给消费者的时候,就涉及 ...

  2. AC日记——自然数和分解 codevs 2549

    自然数和分解 思路: 水题: 代码: #include <bits/stdc++.h> using namespace std; ][]; int main() { cin>> ...

  3. 前端读者 | 从一行代码里面学点JavaScript

    本文来自 @张小俊128:链接:http://www.html-js.com/article/A-day-to-learn-from-a-line-of-code-inside-the-JavaScr ...

  4. 继续ajax长轮询解决方案--递归

    如果使用for,会有一种情况发生,就是ajax的执行会大于其他的动作的执行,那么这样的一段代码就不能实现了 for(var i=0;i<20;i++){ console.log('你好') $. ...

  5. 在SpringMVC中 /* 和 / 的区别

    <url-pattern> / </url-pattern>:会匹配到 /springmvc 这样的路径型url,而不会匹配到像 .jsp 这样的后缀型的url. <ur ...

  6. Ubuntu下各种环境变量设置

    1.用户目录下的 .bashrc 文件在用户主目录下,有一个 .bashrc 文件,编辑该文件:$gedit ~/.bashrc 在最后边加入需要设置变量的shell语句,例如:export PATH ...

  7. 转:python cgi编程

    转:http://www.runoob.com/Python/python-cgi.html 什么是CGI CGI 目前由NCSA维护,NCSA定义CGI如下: CGI(Common Gateway ...

  8. 洛谷P1120 小木棍 [搜索]

    题目传送门 题目描述乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍 ...

  9. python调试工具----pycharm快捷键及一些常用设置

    pycharm快捷键及一些常用设置 Alt+Enter 自动添加包Ctrl+t SVN更新Ctrl+k SVN提交Ctrl + / 注释(取消注释)选择的行Ctrl+Shift+F 高级查找Ctrl+ ...

  10. ExtJs之列表(grid)

    --renderers渲染器 可以格式化该列显示的数据格式或者按照你自定义的脚本显示最终数据样子 先看下renderer: function()里的参数 renderer:function(value ...