1. 程式人生 > >ssh/ssm使用CXF實現基於Rest方式的WebService並返回json資料

ssh/ssm使用CXF實現基於Rest方式的WebService並返回json資料

使用CXF實現基於Rest方式的WebService

1.需要的jar包:


2.applicationContext-webservice.xml配置檔案

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jaxws="http://cxf.apache.org/jaxws"
	 xmlns:jaxrs="http://cxf.apache.org/jaxrs"  
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
	http://www.springframework.org/schema/context 
	http://www.springframework.org/schema/context/spring-context-3.0.xsd 
	http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
	http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">

	<import resource="classpath:META-INF/cxf/cxf.xml" />
<!--jax-ws -->
	<!-- <jaxws:endpoint id="lakeWebServiceSoap" implementor="webservice.shjImpl.LakeWebServiceImpl"
		address="/lakeSoap">
	</jaxws:endpoint> -->
	<!--jax-rs -->
	<bean id="lakeWebServiceImpl" class="webservice.shj.Impl.LakeWebServiceImpl" /> 	
	<jaxrs:server id="testWebServiceRest" address="/rest">

		<jaxrs:serviceBeans>
			<ref bean="lakeWebServiceImpl" />
		</jaxrs:serviceBeans>
		
  		<jaxrs:providers>  
            <bean class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider"/>  
            <bean class="org.apache.cxf.rs.security.cors.CrossOriginResourceSharingFilter"/> 
        </jaxrs:providers>  

		<jaxrs:extensionMappings>
			<entry key="json" value="application/json" />
			<entry key="xml" value="application/xml" />
		</jaxrs:extensionMappings>
	</jaxrs:server>
		
</beans>


3.web.xml配置:主要分2部分,讀取相關xml檔案與配置CXFService

<listener>
    <listener-class>org.apache.tiles.extras.complete.CompleteAutoloadTilesListener</listener-class>
  </listener>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
		/WEB-INF/applicationContext-*.xml
		</param-value>
  </context-param>
 <servlet>
    <servlet-name>CXFService</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>CXFService</servlet-name>
    <url-pattern>/webservice/*</url-pattern>
  </servlet-mapping>



4.webservice介面:ILakeTestWebService
package webservice.shj.Interfaces;


import java.util.List;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
@WebService(targetNamespace="LakeWebService")
@Path(value = "")  
public interface ILakeTestWebService {
@GET  
@Path(value = "/LakeList")
//查詢湖庫資訊
public List<?> LakeList(@QueryParam("wc") @WebParam(name = "waterCondition")String waterCondition);
}
4.webservice實現類:LakeWebServiceImpl.

此處只是hibernate的一個查詢,dao層不再展示

package webservice.shj.Impl;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.jws.WebService;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import com.shj.daoImpl.WebServiceDao;

import base.BaseWSSupport;
import vo.Lake;
import vo.Log;
import webservice.shj.Interfaces.ILakeTestWebService;

@Component
@Transactional
@WebService(targetNamespace="LakeWebService")
public class LakeWebServiceImpl extends BaseWSSupport implements ILakeTestWebService  {
	
	@Resource(name="WebServiceDao")
	private WebServiceDao webServiceDao;
	private GetHql getSql=new GetHql();
	
	
	@Override
	//查詢湖庫資訊
	public List<?> LakeList(String waterCondition) {
		// TODO Auto-generated method stub
		StringBuffer hql=new StringBuffer(" from Lake p where ");
		String hql1=getSql.gethql2(hql,"Lake","waterCondition",waterCondition);
		String methodname = Thread.currentThread() .getStackTrace()[1].getMethodName();
		List<Lake> list;
		int a=0;
		String errMsg="";
		try {
			list = webServiceDao.LakeList(hql1);
			a=1;
			errMsg="json資料獲取成功";
		} catch (Exception e) {
			// TODO Auto-generated catch block
			Timestamp time = new Timestamp(System.currentTimeMillis());
			Log lg=new Log(time,methodname,e.toString());
			webServiceDao.saveLog(lg);
			a=0;
			errMsg="方法:"+methodname+"異常;"+e.toString();
			list=null;
		}
		Map<String, Object> map = new LinkedHashMap<String, Object>();
		map.put("okFlag",a);
		map.put("errMsg",errMsg);
		map.put("data", list);
		List alist = new ArrayList();
		alist.add(map);
		return alist;
	}
}




5.啟動專案,訪問地址:http://localhost:8080/專案/webservice/rest/LakeList.json


相關推薦

ssh/ssm使用CXF實現基於Rest方式WebService返回json資料

使用CXF實現基於Rest方式的WebService 1.需要的jar包: 2.applicationContext-webservice.xml配置檔案 <?xml version="1.0" encoding="UTF-8"?> <beans xm

javaweb總結(九)--從jsp頁面傳送ajax請求,servlet接受引數返回json資料

來自:https://blog.csdn.net/yanghan1222/article/details/78447231   今天遇到了問題把我難住了,解決之後就趕緊來記下來 這是一個很簡單的更新使用者的問題 先來看看專案所需jar包 接下來就是jsp頁面的東西

php寫app介面返回json資料

第一步:conn.php檔案,用於連線資料庫並定義介面格式,程式碼如下: <?php header("charset=utf-8"); $servername="localhost"; $

HttpClient 傳送get請求返回Json資料

一、以百度百科介面為例二、程式碼package com.XXXX.tv.vrs.service; import java.io.IOException; import org.apache.http

android 客戶端訪問自己建立的伺服器返回JSON資料進行解析學習

最近在找關於客戶端訪問伺服器開發的用例 總是去訪問別人的網站也不能對裡面的資料進行修改也不知道是怎麼實現的,自己在網上申請了一個免費的伺服器網站上傳了一個php檔案,現在就可以通過urlStr===http://1.hellowes.sinaapp.com/訪問伺服器上的資

client提交json(nodejs)和server解析json返回json資料(express)

先寫一個nodejs檔案用於向伺服器傳送json資料: jsonClient.js: var http = require('http'); var crypto = require('crypto');//引入加密模組 var text = "phoneNumber=15210943874&k

使用Flask+MongoDB實現基於REST的接口簡單操作

服務器環境 互聯 utf 遇到的問題 like .exe 查找 提示信息 進入 目錄 前言 1 準備工作 2 具體實現 前言 最近在搗鼓如何使用阿裏雲服務器搭建一個簡單的基於Flask框架的後端接口,剛開始為了圖方便,就直接買了一個Wind

Eureka實現基於DNS方式搭建叢集

Eureka使用起來還是比較簡單的,至於搭建叢集網上很多資料都有介紹使用IP的方式配置叢集的每一臺伺服器,這樣做不好之處在於萬一需要新增、刪除、修改服務IP和埠號時需要針對每一臺伺服器的配置檔案進行修改,這是比較麻煩的一個事,而使用DNS方式就能解決這個問題。但是網上的資料針對這方面還是比較少的,沒

HttpURL連接遠程serverGet和Post方式請求返回數據

spa tostring exc fcm target public writer 連接 article 查看原文:http://www.ibloger.net/article/1813.html package cn.gis; import java.

Struts2+Jquery實現ajax返回json型別資料

摘要: 主要實現步驟如下: 1、JSP頁面使用指令碼程式碼執行ajax請求 2、Action中查詢出需要返回的資料,並轉換為json型別模式資料 3、配置struts.xml檔案 4、頁面指令碼接受並處理資料  網上看到很多關於Struts2+ajax+jquery+jso

Java 通過HttpClient Post方式提交json從服務端返回json資料

直接上程式碼吧,和前面幾篇文章都差不多 java程式碼: package PostPager; import java.io.IOException; import java.io.InputStream; import java.io.Output

spring boot 攔截器實現攔截前端請求返回json至前端頁面

攔截器主體 import com.alibaba.fastjson.JSONObject; import com.ufclub.vis.constant.StatusConstant; import com.ufclub.vis.entity.BaseResult; imp

jquery實現可編輯表格,生成json結果

實現效果如下,在編輯表格的同時可以實現欄位json內容的自動變化,點選提交可以儲存到後臺,頁面載入的時候自動解析json並載入表格內容。該程式碼解析和載入功能都用前端js實現,簡化了後臺程式碼邏輯。 定義要操作的表格頭: <input readonly="read

泛型+反射 實現泛型向資料庫插入資訊類 返回插入資料的Id值

static string conStr = @"server=.;database=a;uid=sa;pwd=a;"; /// <summary> /// Execute

Java 通過HttpURLConnection Post方式提交json從服務端返回json資料

這個技術和xml差不過,主要是服務端程式碼稍微修改,客戶端程式碼修改部分傳遞引數就可以完成,但在之前需要匯入json所需要的jar包。 PostJson.java程式碼 package PostPager; import java.io.InputSt

Java程式碼訪問url,返回json串之實現方法

在專案開發中,需要在控制器中訪問url介面,並得到json串,將得到的json串用於jsp頁面。這裡總結一下在java程式碼中分別進行get和post的url訪問。需要準備一下jar包:org.apache.http.HttpEntity;org.apache.http.Ht

接口訪問-返回json字符串

stringbu div getc exceptio OS etc AC null als String requestUrl = "http://www.kuaidi100.com/query?type="+express2.getCode()+"&postid=

php後臺查詢出資料返回json資料,前臺接收輸出

stu表: index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://www.jq22.com/jquery/jquery

Rest framework——從一段json資料來學rest_framework

一、用 Django 來返回一段 json 資料列表 import json from .models import Product from django.http import HttpRespon

建立返回文字資料

作用:建立並返回一個文字資料流並應用各種選項,可用於fopen(),file_get_contents()等過程的超時設定、代理伺服器、請求方式、頭資訊設定的特殊過程。  函式原型:resource stream_context_create ([ array $option