加入收藏 |
设为首页 |
会员中心 | 我要投稿
|
李大同 (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)
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" >
|
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>
|
10
? |
12
13
|
<url-pattern>/BulletinServicePort</url-pattern>
|
14
</servlet-mapping>
|
16
<welcome-file-list>
|
17
|
<welcome-file>index.jsp</welcome-file>
|
18
</welcome-file-list>
|
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.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();
26
????? |
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();
|
}
然后,Client端(Android代码):(Config.java、SOAPUtil.java、dbconfig.properties子三个文件完成Android客户端的WebServices部署)
01
com.sk.soap;
|
04
java.util.Properties;
|
06
Config {
|
07
|
private?static ?Properties prop =? Properties();
|
08
static{
|
10
????????????
|
11
|
????????????prop.load(Config. .getResourceAsStream( "dbconfig.properties" ));
|
12
}?catch ?(IOException e) {
|
13
|
// TODO Auto-generated catch block
|
14
e.printStackTrace();
|
16
}
|
18
????
|
19
|
static?final ?String WSDL_HTTP = prop.getProperty( "WSDL_HTTP" );
|
20
????? |
SOAPUtil.java文件
org.ksoap2.SoapEnvelope;
org.ksoap2.serialization.SoapObject;
org.ksoap2.serialization.SoapSerializationEnvelope;
|
org.ksoap2.transport.HttpTransportSE;
org.xmlpull.v1.XmlPullParserException;
|
android.util.Log;
?????????
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(null 26
|
????????????if ?(envelope.getResponse() !=? ) {??????????????
|
27
|
????????????????envelope.getResponse();
|
28
29
|
(IOException e) {
|
30
e.printStackTrace();???????????????????
|
31
|
(XmlPullParserException e) {
|
32
33
|
}??????
|
34
return?;
|
dbconfig.properties文件,写链接地址
WSDL_HTTP=http:
最后看一下Activity中如何通过JOSN取后台传过来的值: ? ?
1
|
在oncreate()方法里边调用下边方法jsonAdapter()给适配器
|
List<Gpw_Bulletin_Info> list =?this
.jsonAdapter();
3
|
ListAdapter adapter =?ListAdapter(ListActivity. 4
|
? |
5
|
list_LV.setAdapter(adapter);
|
01
private?List<Gpw_Bulletin_Info> jsonAdapter() {
|
02
ArrayList<Gpw_Bulletin_Info>();
|
04
Object obj = SOAPUtil.TransportData("BulletinServicePort?wsdl" "find"
06
|
String data = String.valueOf(obj.toString());
|
07
|
Log.i("TAG" "data=" ?+ data);
|
08
(data !=?) {
|
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
}
|
26
e.printStackTrace();
|
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();
|
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!