api idea 开发rest_IDEA java开发 Restful 风格的WebService

1、在IntelliJ中创建新项目,选择Java Enterprise -> RESTful Web Service -> Download

2、创建完项目JerseyDemo后,对项目点击右键 -> Add Frameworks Support,分别勾选Web Application和Maven。其中,web appication为项目增加了web.xml,maven为构建工具。

完成之后项目的文件结构如下:

3、 在maven中加入jersey依赖

1.8

1.8

org.glassfish.jersey.containers

jersey-container-servlet

2.9

org.glassfish.jersey.core

jersey-client

2.9

org.glassfish.jersey.media

jersey-media-json-jackson

2.9

View Code

此时,整个pom.xml文档如下。另外使用maven默认的库下载源文件很慢,可以使用国内镜像,方法可见maven国内镜像(maven下载慢的解决方法)。

4. 创建源文件

在src/java目录下新建包,如com.test.jersey,在包下新建类HelloWorld.java,写上代码:

packagecom.test.jersey;importjavax.ws.rs.GET;importjavax.ws.rs.Path;importjavax.ws.rs.Produces;

@Path("/hello")public classHelloWorld {//GET注解设置接受请求类型为GET

@GET//Produces表明发送出去的数据类型为text/plain//与Produces对应的是@Consumes,表示接受的数据类型为text/plain

@Produces("text/plain")publicString getMessage() {return "Hello world!";

}

}

View Code

5. 配置servlet

编辑web/WEB-INF/web.xml,加入代码:

restful_service_test

org.glassfish.jersey.servlet.ServletContainer

jersey.config.server.provider.packages

com.test.jersey

1

restful_service_test

/api/*

6、 配置Tomcat

点击Run >Edit Configurations… > “+” > Tomcat Server > Local,加入Tomcat,选择Deployment tab, 点击“+”, 选择唯一的Artifact,点击"OK"即可。

7、在输出中加入库文件

选择Project Structure,点击Artifacts,可以右侧Available Elements下面有很多库文件没有包含在输出中。依次双击各个文件即可。

8. 运行Tomcat

运行Tomcat,在浏览器中输入http://localhost:8080/api/hello,即可看到以下输出:

9、增加SolrService类,访问solr服务

packagecom.solr.service;importorg.apache.solr.client.solrj.SolrClient;importorg.apache.solr.client.solrj.SolrQuery;importorg.apache.solr.client.solrj.SolrServerException;importorg.apache.solr.client.solrj.impl.HttpSolrClient;importorg.apache.solr.client.solrj.response.Cluster;importorg.apache.solr.client.solrj.response.QueryResponse;importorg.apache.solr.client.solrj.response.ClusteringResponse;importorg.apache.solr.common.SolrDocumentList;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;/*** @Author:sks

* @Description:

* @Date:Created in 9:56 2018/2/26

* @Modified by:

**/

public classSolrService {privateSolrClient solr;//public SolrService(){//String urlString = "http://localhost:8983/solr/test";HttpSolrServer hs=new HttpSolrServer("http://localhost:8888/solr");//

//solr = new HttpSolrClient.Builder(urlString).build();//}

/*** @Author:sks

* @Description:初始化solr客户端

* @Date:*/

public voidInit(){

String urlString= "http://localhost:8983/solr/test";

solr= newHttpSolrClient.Builder(urlString).build();

}//public static void main(String[] args) throws SolrServerException,IOException {//

String urlString = "http://localhost:8983/solr/mycore";//String urlString = "http://localhost:8983/solr/test";//String path = "D:/work/Solr/ImportData";//

//Init(urlString);//getAutoClusterInfo();//System.exit(0);//}

/*** @Author:sks

* @Description:获取文档总数

* @Date:*/

private longgetDocTotalCount() {long num = 0;try{

SolrQuery params= newSolrQuery();

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();

}returnnum;

}/*** @Author:sks

* @Description:获取聚类数据

* @Date:*/

publicString getAutoClusterInfo() {//使用这个对象做查询

SolrQuery params = newSolrQuery();//查询所有数据

params.set("qt", "/clustering");

params.setQuery("*:*");

params.setStart(0);

params.setRows((int)getDocTotalCount());//params.setRows(30);

List list = null;try{

QueryResponse queryResponse=solr.query(params);

ClusteringResponse clr=queryResponse.getClusteringResponse();

list=clr.getClusters();//拿到聚类数据集合,返回查询结果

}catch(SolrServerException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}

String txt= "";

List lst = new ArrayList();for(Cluster c :list){//类别标签

List lblist =c.getLabels();for(String lb:lblist){

System.out.println(lb);

}//聚类文档ID

List doclist =c.getDocs();for(String doc:doclist){

lst.add(doc);

System.out.println(" " +doc);

}

}return "abc";

}

}

View Code

在增加getSolrData方法

@GET

@Produces("text/plain")

@Path("/getSolrData")//api/solrData/getSolrData

publicString getSolrData() {

SolrService ss= newSolrService();

ss.Init();

String s=ss.getAutoClusterInfo();returns;

}

运行tomcat,在浏览器输入:http://localhost:8080/api/hello/getSolrData

原因找了半天是因为web.xml里面

改为 com.solr.service

重新运行tomcat 在浏览器输入:http://localhost:8080/api/hello/getSolrData 还是报错

原因是Artifacts新加入的jar包没有包含在输出中,依次双击各个文件即可加入到输出中。

终于成功了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值