java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。本站提供基于Java框架struts,spring,hibernate等的桌面应用、web交互及移动终端的开发技巧与资料

保持永久学习的心态,将成就一个优秀的你,来 继续搞起java知识。

实现webservice所需的jar包

服务器端实现:

业务接口实现:

package com.sk.core.webservice.server;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public interface QzqdServer {

public String saveQzqd(String message);

public String updateQzqd(String message);

public String deleteQzqd(String message);

}

业务实现类:

package com.sk.core.webservice.server.impl;

import java.util.HashMap;

import java.util.Iterator;

import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.xml.ws.WebServiceContext;

import javax.xml.ws.handler.MessageContext;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.codehaus.xfire.transport.http.XFireServletController;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import com.sk.cms.entity.main.CmsSite;

import com.sk.cms.entity.main.CmsUser;

import com.sk.cms.entity.main.Content;

import com.sk.cms.entity.main.ContentExt;

import com.sk.cms.entity.main.ContentTxt;

import com.sk.cms.entity.main.ContentType;

import com.sk.cms.manager.main.CmsSiteMng;

import com.sk.cms.manager.main.CmsUserMng;

import com.sk.cms.manager.main.ContentMng;

import com.sk.cms.web.CmsUtils;

import com.sk.cms.web.WebErrors;

import com.sk.core.manager.UnifiedUserMng;

import com.sk.core.webservice.server.QzqdServer;

@Service

public class QzqdServerImpl implements QzqdServer{

private static Log log=LogFactory.getLog(QzqdServerImpl.class);

@Autowired

private ContentMng contentMng;

@Autowired

private CmsUserMng cmsUserMng;

@Autowired

private UnifiedUserMng unifiedUserMng;

@Autowired

private CmsSiteMng cmsSiteMng;

/**

* json 数据格式{"title":"","channelId":"","typeId":"","attr":{

* "codeId":"","code":"","xzzqsx":"","xzzqmc":"",.......

* },"username":"","password":""}

*/

public String saveQzqd(String message) {

HashMap messMap = new HashMap();

try{

//HttpServletRequest request = XFireServletController.getRequest();

CmsSite site = cmsSiteMng.findById(1);

JSONObject json =new JSONObject(message);

String title=json.getString("title");

String channelId=json.getString("channelId");

String username=json.getString("username");

String password=json.getString("password");

String picPath=null;

String picDesc=null;

if(json.has("picPath")){

picPath=json.getString("picPath");

}

if(json.has("picDesc")){

picDesc=json.getString("picDesc");

}

//String typeId=json.getString("typeId");

HashMap attr=toHashMap(json.getString("attr"));

Content bean=new Content();

ContentExt ext=new ContentExt();

ContentTxt txt=new ContentTxt();

Integer[] channelIds = null;

Integer[] topicIds = null;

Integer typeId=1;

Integer[] viewGroupIds = null;

String[] attachmentPaths = null;

String[] attachmentNames =null;

String[] attachmentFilenames = null;

String[] picPaths={picPath};

String[] picDescs = {picDesc};

String[] tagArr = null;

Boolean draft = null;

CmsUser user = cmsUserMng.findById(unifiedUserMng.getByUsernameAndPass(username, password).getId());// 获取管理员用户

if(null!=user&&!user.getDisabled()){

bean.setUser(user);

bean.setAttr(attr);

bean.setSite(site);

ext.setTitle(title);

bean=contentMng.save(bean, ext, txt, channelIds, topicIds, viewGroupIds,

tagArr, attachmentPaths, attachmentNames, attachmentFilenames,

picPaths, picDescs, Integer.valueOf(channelId), typeId, draft, user, false);

messMap.put("status", "1");

messMap.put("contentId",String.valueOf(bean.getId()));

}else{

messMap.put("status", "0");

messMap.put("message", "用户名或密码错误");

}

}catch(org.json.JSONException e){

messMap.put("status", "0");

messMap.put("message", "必需参数存在空值");

log.info(e.getMessage());

}

catch(java.lang.NullPointerException e){

messMap.put("status", "0");

messMap.put("message", "用户名或密码错误");

log.info(e.getMessage());

}

catch(Exception e){

messMap.put("status", "0");

messMap.put("message", "数据保存异常");

log.info(e.getMessage());

}

JSONObject object=new JSONObject(messMap);

return object.toString();

}

public String updateQzqd(String message) {

HashMap messMap = new HashMap();

try{

//HttpServletRequest request = XFireServletController.getRequest();

CmsSite site = cmsSiteMng.findById(1);

JSONObject json =new JSONObject(message);

String title=null;

if(json.has("title")){

title=json.getString("title");

}

String picPath=null;

String picDesc=null;

if(json.has("picPath")){

picPath=json.getString("picPath");

}

if(json.has("picDesc")){

picDesc=json.getString("picDesc");

}

String cid=null;

Integer channelId=null;

if(json.has("channelId")){

cid=json.getString("channelId");

if(cid!=null&&!"".equals("")){

channelId=Integer.valueOf(cid);

}

}

String username=json.getString("username");

String password=json.getString("password");

String id=json.getString("id");

HashMap attr=null;

if(json.has("attr")){

attr=toHashMap(json.getString("attr"));

}

Content bean=new Content();

ContentExt ext=new ContentExt();

ContentTxt txt=new ContentTxt();

Integer[] channelIds = null;

Integer[] topicIds = null;

Integer typeId=1;

Integer[] viewGroupIds = null;

String[] attachmentPaths = null;

String[] attachmentNames =null;

String[] attachmentFilenames = null;

String[] picPaths = {picPath};

String[] picDescs = {picDesc};

String[] tagArr = null;

Boolean draft = null;

CmsUser user = cmsUserMng.findById(unifiedUserMng.getByUsernameAndPass(username, password).getId());// 获取管理员用户

if(null!=user&&!user.getDisabled()){

bean.setId(Integer.valueOf(id));

bean.setUser(user);

//bean.setAttr(attr);

bean.setSite(site);

if(title!=null&&!"".equals(title)){

ext.setTitle(title);

}

ext.setId(Integer.valueOf(id));

bean=contentMng.update(bean, ext, txt, tagArr, channelIds, topicIds, viewGroupIds, attachmentPaths, attachmentNames, attachmentFilenames, picPaths, picDescs, attr, channelId, typeId, draft, user, false);

messMap.put("status", "1");

messMap.put("contentId",String.valueOf(bean.getId()));

}else{

messMap.put("status", "0");

messMap.put("message", "用户名或密码错误");

}

}catch(org.json.JSONException e){

messMap.put("status", "0");

messMap.put("message", "必需参数存在空值");

log.info(e.getMessage());

}

catch(java.lang.NullPointerException e){

messMap.put("status", "0");

messMap.put("message", "用户名或密码错误");

log.info(e.getMessage());

}

catch(Exception e){

messMap.put("status", "0");

messMap.put("message", "数据跟新异常");

log.info(e.getMessage());

e.printStackTrace();

}

JSONObject object=new JSONObject(messMap);

return object.toString();

}

public String deleteQzqd(String message) {

HashMap messMap = new HashMap();

try{

JSONObject json =new JSONObject(message);

String id=json.getString("id");

String username=json.getString("username");

String password=json.getString("password");

CmsUser user = cmsUserMng.findById(unifiedUserMng.getByUsernameAndPass(username, password).getId());// 获取管理员用户

if(null!=user&&!user.getDisabled()){

Content bean=contentMng.deleteById(Integer.valueOf(id));

messMap.put("status", "1");

messMap.put("contentId",String.valueOf(bean.getId()));

}else{

messMap.put("status", "0");

messMap.put("message", "用户名或密码错误");

}

}catch(org.json.JSONException e){

messMap.put("status", "0");

messMap.put("message", "必需参数存在空值");

log.info(e.getMessage());

}

catch(java.lang.NullPointerException e){

messMap.put("status", "0");

messMap.put("message", "用户名或密码错误");

log.info(e.getMessage());

}

catch(Exception e){

messMap.put("status", "0");

messMap.put("message", "数据保存异常");

log.info(e.getMessage());

}

JSONObject object=new JSONObject(messMap);

return object.toString();

}

/**

* 将json格式的字符串解析成Map对象

  • * json格式:{"name":"admin","retries":"3fff","testname"

    * :"ddd","testretries":"fffffffff"}

    * @throws JSONException

    */

    private HashMap toHashMap(String object) throws JSONException

    {

    HashMap data = new HashMap();

    // 将json字符串转换成jsonObject

    JSONObject jsonObject = new JSONObject(object);

    Iterator it = jsonObject.keys();

    // 遍历jsonObject数据,添加到Map对象

    while (it.hasNext())

    {

    String key = String.valueOf(it.next());

    String value = jsonObject.getString(key);

    data.put(key, value);

    }

    return data;

    }

    }

    在web.xml文件中添加:

    xfire

    org.springframework.web.servlet.DispatcherServlet

    xfireServlet

    org.codehaus.xfire.spring.XFireSpringServlet

    xfireServlet

    /service/XFireServlet/*

    xfire-servlet.xml文件

    "http://www.springframework.org/dtd/spring-beans.dtd">

    客户端测试类:

    package sktask;

    import java.net.URL;

    import java.util.Date;

    import org.apache.commons.httpclient.util.HttpURLConnection;

    import org.codehaus.xfire.client.Client;

    public class WebServiceTest {

    public boolean newMessage() {

    Client client;

    try {

    client = new Client(

    new URL(

    "http://localhost:9090/service/XFireServlet/QzqdServer?wsdl"));

    // 根据WSDL创建客户实例

    String[] objArray = new String[1];

    objArray[0] = "{'id':'14315','picPath':'http://dpxq.gov.cn/u/cms/www/201603/011705420vfw.jpg','title':'test修改222','username':'webqzqd','password':'e10adc3949ba59abbe56e057f20f883e'}";

    //objArray[0] = "{'picPath':'http://dpxq.gov.cn/u/cms/www/201603/011705420vfw.jpg','title':'test2','channelId':'786','username':'webqzqd','password':'e10adc3949ba59abbe56e057f20f883e'}";

    //objArray[0] = "{'id':'14314','username':'webqzqd','password':'e10adc3949ba59abbe56e057f20f883e'}";

    // 调用特定的Web Service方法

    //Object[] results = client.invoke("saveQzqd", objArray);

    Object[] results = client.invoke("updateQzqd", objArray);

    //Object[] results = client.invoke("deleteQzqd", objArray);

    System.out.println("newMessage result: " + results[0]);

    return Boolean.parseBoolean(results[0].toString());

    } catch (Exception e) {

    e.printStackTrace();

    }

    return false;

    }

    public static void main(String[] args){

    WebServiceTest test=new WebServiceTest();

    test.newMessage();

    }

    }

    javawebwebservicexfire

    因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正。一切为了知识的分享。

    后续会有更多的精彩的内容分享给大家。