加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

SOAP之WebService、JSON传值问题

发布时间:2020-12-16 23:49:54 所属栏目:安全 来源:网络整理
导读:原 SOAP之WebService、JSON传值问题 发表于1年前(2012-08-17 15:11)?? 阅读( 1248 )?|?评论( 0 )? 0 人收藏此文章,? 我要收藏 赞 0 WebServices? JSON? SOAP? 传值? Android? Java 首先,Server端(Java后台代码):(web.xml、sun-jaxws.xml、BulletinS

SOAP之WebService、JSON传值问题

发表于1年前(2012-08-17 15:11)?? 阅读( 1248)?|?评论( 0)? 0人收藏此文章,?我要收藏
0
WebServices? JSON? SOAP? 传值? Android? Java

首先,Server端(Java后台代码):(web.xml、sun-jaxws.xml、BulletinService.java、BulletinServiceDelegate.java)

1 web.xml文件:

01
<?xml version="1.0"?encoding="UTF-8"?>
02 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?xmlns="http://java.sun.com/xml/ns/javaee"?xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"?xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"?version="2.5">
03 ??<servlet>
04 ????<description>JAX-WS endpoint - UsersServiceService</description>
05 <display-name>UsersServiceService</display-name>
06 <servlet-name>UsersServiceService</servlet-name>
07 <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet->
08 <load-on-startup>1</load-on-startup>
09 </servlet>
10 ?
11 <servlet-mapping>
12 13 <url-pattern>/BulletinServicePort</url-pattern>
14 </servlet-mapping>
15 ???
16 <welcome-file-list>
17 <welcome-file>index.jsp</welcome-file>
18 </welcome-file-list>
19 <listener>
20 <listener-21 com.sun.xml.ws.transport.http.servlet.WSServletContextListener
22 </listener-23 </listener>
24 </web-app>
sun-jaxws.xml文件,和web.xml同目录下
<?xml version =?"1.0"2 <endpoints version="2.0"?"http://java.sun.com/xml/ns/jax-ws/ri/runtime"3 <endpoint name="BulletinServicePort"?implementation="com.sk.service.BulletinService"
4 ????????url-pattern="/BulletinServicePort"5 </endpoint>
6 </endpoints>
BulletinService.java文件service层,去调用dao层的方法
package?com.sk.service;
import?java.util.List;
javax.jws.WebMethod;
javax.jws.WebService;
?
org.json.JSONArray;
com.sk.dao.IBulletinDao;
com.sk.dao.impl.BulletinDaoImpl;
com.sk.vo.Gpw_Bulletin_Info;
<a href="http://my.oschina.net/u/142217"?="referer"?target="_blank">@WebService</a>
public?class?BulletinService {
IBulletinDao bulletinDao =?new?BulletinDaoImpl();
????@WebMethod
????public?String find() {
List<Gpw_Bulletin_Info> list = bulletinDao.findAll();
????????// 调用查询方法
JSONArray jsonArray =?JSONArray(list);
????????return?jsonArray.toString();
25 }
26 ?????
27 }
BulletinServiceDelegate.java文件service层,WebServices对外暴露数据
@javax.jws.WebService(targetNamespace =?"http://service.sk.com/",serviceName =?"BulletinServiceService""BulletinServicePort")
BulletinServiceDelegate {
com.sk.service.BulletinService bulletinService =?com.sk.service.BulletinService();
bulletinService.find();
}
}

然后,Client端(Android代码):(Config.java、SOAPUtil.java、dbconfig.properties子三个文件完成Android客户端的WebServices部署)

1 Config.java文件
01 com.sk.soap;
02 ?
03 java.io.IOException;
04 java.util.Properties;
05 ?
06 Config {
07 private?static?Properties prop =?Properties();
08 static{
09 try?{
10 ????????????//加载配置文件dbonfig.properties
11 ????????????prop.load(Config..getResourceAsStream("dbconfig.properties"));
12 }?catch?(IOException e) {
13 // TODO Auto-generated catch block
14 e.printStackTrace();
15 }
16 }
17 ?????
18 ????//获取dbconfig.properties中的值
19 static?final?String WSDL_HTTP = prop.getProperty("WSDL_HTTP");
20 ?????
21 }
SOAPUtil.java文件
org.ksoap2.SoapEnvelope;
org.ksoap2.serialization.SoapObject;
org.ksoap2.serialization.SoapSerializationEnvelope;
org.ksoap2.transport.HttpTransportSE;
org.xmlpull.v1.XmlPullParserException;
android.util.Log;
?????????
SOAPUtil {
Object TransportData(String service,?String webMethod,Object[] params){
SoapObject request =?SoapObject(
for(int?i=0;i<params.length;i++){
Log.v("params"
request.addProperty("arg"+i,params[i]);
}??????
SoapSerializationEnvelope envelope =?SoapSerializationEnvelope(SoapEnvelope.VER11);????????
22 envelope.bodyOut = request;????????
23 HttpTransportSE ht =?HttpTransportSE(Config.WSDL_HTTP+service);
24 {??????????
25 ht.call(null26 ????????????if?(envelope.getResponse() !=?) {??????????????
27 ????????????????envelope.getResponse();
28 29 (IOException e) {
30 e.printStackTrace();???????????????????
31 (XmlPullParserException e) {
32 33 }??????
34 return?;
35 36 37 }
dbconfig.properties文件,写链接地址
WSDL_HTTP=http://192.168.0.91:8080/SK_Java_Service/
最后看一下Activity中如何通过JOSN取后台传过来的值: ? ?
1 在oncreate()方法里边调用下边方法jsonAdapter()给适配器
List<Gpw_Bulletin_Info> list =?this.jsonAdapter();
2 // 加载适配器
3 ListAdapter adapter =?ListAdapter(ListActivity.4 ?
5 list_LV.setAdapter(adapter);
01 private?List<Gpw_Bulletin_Info> jsonAdapter() {
02 ArrayList<Gpw_Bulletin_Info>();
03 ?
04 Object obj = SOAPUtil.TransportData("BulletinServicePort?wsdl""find"
05 Object[] {});
06 String data = String.valueOf(obj.toString());
07 Log.i("TAG""data="?+ data);
08 (data !=?) {
09 {
10 ????????????????JSONArray json =?JSONArray(data);
11 12 for?i =?; i < json.length(); i++) {
13 ????????????????????Gpw_Bulletin_Info info =?Gpw_Bulletin_Info();
14 15 info.setBulletinid(((JSONObject) json.get(i))
16 ????????????????????????????.getInt("bulletinid"));
17 info.setTitle(((JSONObject) json.get(i)).getString("title"));
18 info.setHtmlcontent(((JSONObject) json.get(i))
19 .getString("htmlcontent"20 info.setStartdate(((JSONObject) json.get(i))
21 "startdate"22 23 list.add(info);
24 }
25 (JSONException e) {
26 e.printStackTrace();
27 }
28 else?{
29 Toast.makeText(getApplicationContext(),monospace!important; border:0px!important; color:blue!important; outline:0px!important; float:none!important; vertical-align:baseline!important; position:static!important; left:auto!important; top:auto!important; right:auto!important; bottom:auto!important; height:auto!important; width:auto!important; line-height:1.1em!important; font-size:10pt!important; min-height:inherit!important">"暂无数据!"30 .show();
31 32 list;
33 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

相关内容
推荐文章
站长推荐
热点阅读