java编写一个webservice接口,接口中的方法参数应该是什么,返回值是什么意思呢?(急)要求见补充,谢谢啦

我要用asp调用WebService (被调用的是一个短信接口下面给详细说明)希望能按照这个要求给我写个例子 谢谢
我要用asp调用WebService (被调用的是一个短信接口下面给详细说明)希望能按照这个要求给我写个例子 谢谢 100
那边给我的文档:接口原型:sendMessage (); 接口路径:
【参数说明】:参数名称 数据类型 说明 ApName String SP帐号 ApPassword String SP密码 compcode String 企业标识 userCode String 企业帐号 calledNumber String 被叫号码 sendTime String 发送时间 content String 发送内容
这个接口是用:java写的,你可以参考下java方面的语言,希望对你有所帮助。还有,楼上的,全是广告,实在受不了。
其他回答 (2)
我们也提供短信接口的,难道他们技术没有示例给你看吗?
ASP 调用例子&%'常用函数'输入url目标网页地址,返回值getHTTPPage是目标网页的html代码function getHTTPPage(url)dim Httpset Http=server.createobject("MSXML2.XMLHTTP")Http.open "GET",url,falseHttp.send()if Http.readystate&&4 then exit functionend ifgetHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")set http=nothingif err.number&&0 then err.Clear end functionFunction BytesToBstr(body,Cset)dim objstreamset objstream = Server.CreateObject("adodb.stream")objstream.Type = 1objstream.Mode =3objstream.Openobjstream.Write bodyobjstream.Position = 0objstream.Type = 2objstream.Charset = CsetBytesToBstr = objstream.ReadText objstream.Closeset objstream = nothingEnd Function'自已组合一下提交的URL加入自己的账号和密码sms_url=& 账号&Key=接口密钥&smsMob=手机号码&smsText=短信内容&response.write getHTTPPage(sms_url)%&
PHP调用例子$url=' 账号&Key=接口密钥&smsMob=手机号码&smsText=短信内容';
echo Get($url);function Get($url){if(function_exists('file_get_contents')){$file_contents = file_get_contents($url);}else{$ch = curl_init();$timeout = 5;curl_setopt ($ch, CURLOPT_URL, $url);curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);$file_contents = curl_exec($ch);curl_close($ch);}return $file_}
相关知识等待您来回答
网页制作领域专家汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(983)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_083064',
blogTitle:'Delphi调用java开发的WebService,传入参数出错',
blogAbstract:'http://topic.csdn.net/u//49-4eb9-b8ba-f.html调用没有参数的服务正常,当调用有参数的服务出现以下错误\njava.util.concurrent.ExecutionException:&java.lang.NullPointerException\n\n另外加了RIO.HTTPWebNode.UseUTF8InHeader&:=&T\nInvRegistry.RegisterInvokeOptions(TypeInfo(ESBProServicePortType),&ioDocument);\n也加了\'UTF-8\');\n开发环境为D2007\n\n
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:3,
publishTime:6,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'闲人一个',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}关于java的xfire调用.net的WebService接口,参数传不过去呢?的搜索推荐 -Java-TryCatch
>> 相关推荐
关于的搜索推荐
.net接口方法
[WebMethod] publicbooladdtest(stringuid,stringsid){ ... }
importjava.net.URL; importorg.codehaus.xfire.client.C
publicstaticvoidmain(String[]args){ try{ StringserivceURL="http://localhost:2009/Service.asmx?wsdl"; Clientclient=newClient(newURL(serivceURL)); String[]params={"1","123"}; Object[]res={}; res=client.invoke("addtest",params); }catch(Exceptione){ e.printStackTrace(); } }
使用java的xfire调用后,.net接口已经调到了,但是参数全部为null
能看状态码么看是不是200
调到了啊算我白说……
推荐你捉一下报文,生成得报文有问题。
可能先下个soapUi来进行测试..如果soapUi可以调用。对比一下报文就知道问题在那了
public class TestWebService {public static void main(String[] args) {String endpoint = "http://localhost:8080/BTVMonitorSystem/webservice/IBtvMonitor...
我这里用的是java+axis1.4开发的客户端,对方是.net服务端,调用是成功的(对方出错信息反馈回来了),但是对方打印出参数都是空的:java:Call call = (Call)ser...
java写好的webservice服务部分代码:public class AuthenticationHandler extends AbstractHandler {public void invoke(MessageContext cfx) throws Exception ...
我用xfile调用.net webservice怎么报错:Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested excepti...
错误代码是:AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client faultSubcode:
faultString: Server did not recognize the value of H...
各位大侠,我在调用.net接口里报了一个这样的错误:org.xml.sax.SAXException: Bad envelope tag :TITLE不知道这个问题怎么解决呢
------------
自己顶一下,各...
本帖最后由 didiaogao 于
16:41:50 编辑...
c++如何调用java的xfire发布的webservice??我用xfire发布的webservice,我用js调用可以调用,php可以调用,他们c++的不能调用,请问c++如何调用??望指点一下!...
最近在调试JAVA调用.net webservice接口时,老是碰到一个问题,提示参数为空,解析不了。&errorDesc&值不能为空。参数名: s&/errorDesc&上面是接口返...
JAVA调用代码try {//直接引用远程的wsdl文件String endpoint = "http://192.168.1.10:8080/service/aws.asmx?wsdl";String sa = "http://tempuri.org/saveDat...
这个问题困扰了很多天了。没有报错,调用好像正常的,能得到返回值。就是传过去的值都是空值。{"312","","12345","38...
首先我看到了http://blog.csdn.net/DragonTang/archive//4140298.aspx,使用这种方法可以成功调用 QQ是否在线的一个服务,但是对于其他的服务从来没有...
.cn/webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=这是一个公网的webservice。package net.ly.webservice.im...
BS端提供的方法签名JointInquiry(string,string)(添加Web引用之后由.NET自动生成的方法),字符串参数传递的是英文字符串或数字字符串时,没有问题,可以操作数据...
java调用VB写的webservice接口,接口中含有两个结构,如何调用;
------------
------------
一般两条路,一条去找开发这个webservice的人让他改成基本类型...WebService测试方案
1.WebService简介
WebService是一种革命性的分布式计算技术,本质上就是网络上可用的API,可以直接在网络环境调用的方法。
WebService常用的框架有axis、xfire、cxf等。
WebService发布后,其服务是封装在一个wsdl(Web Services Description
Language,Web服务描述语言)文件中,客户端发请求主要是向发布好的wsdl地址以SOAP方式发请求,调用过程如下:
&O& 服务端:
n& 生成服务描述文件,以供客户端获取。
n& 接收客户端发来的SOAP请求消息,解析其中的方法调用和参数格式。
根据wsdl和wsml的描述,调用相应的COM对象来完成指定功能,并把返回值放入SOAP回应消息返回给用户。
&O& 客户端:
n& 取得服务端的服务描述文件,解析该文件从而获得服务端的服务信息以及调用方式。
n& 指定调用方法和参数,生成恰当的SOAP请求消息,发往服务端。
n& 等待服务端返回的SOAP回应消息,解析得到返回值。
2.WebService测试说明
WebService的测试主要围绕功能测试、性能测试和安全性测试展开,下面主要描述WebService三大测试的要点。
2.1 WebService功能测试
测试目的:测试系统所实现WebService接口的功能。
进入条件:开发人员提供已实现功能的程序包,和待测试webservice的方法名、参数以及实现的功能描述。
测试要点:不同的参数组合,应按设计要求返回相应的信息。
2.2&WebService性能测试
测试目的:测试系统所实现WebService接口的性能。进入条件:WebService接口的功能测试已完毕。
测试要点:测试并发调用WebService接口,观察其性能表现,主要是在不同的并发量、持续运行时间和数据库不同容量下,事务的响应时间、总事务数、事务的成功率、点击率等,同时监控硬件资源的消耗情况。
2.3&WebService安全性测试
测试目的:测试系统所实现WebService接口的安全性。
进入条件:WebService接口的功能测试已完毕。
测试要点:测试WebService接口的调用是否有用户名、密码验证,恶意调用是否会导致系统崩溃等。
3.WebService功能测试
目前掌握的测试工具soapUI可以进行WebService的功能测试,下面以测试存储服务的PIXManager接口详细介绍使用soapUI进行WebService功能测试的操作步骤。
3.1&新建工程
1、单击‘File’-&‘ New soapUI
Project’,如下图:
2、在弹出的对话框中输入待测试的ws信息,然后点击 [OK]
Project Name:PIXManager
Initial WSDL/WADL:
Create Requests:选中
Create TestSuite:选中
Relative Paths:选中
3、保存project
4、生成初始的测试用例
选择One TestCase for each Operation:每个接口创建一个用例
选择Create new empty requests:创建一个空的请求
Operations:选择待测试的方法
选择Generates a default LoadTest for each created
TeseCase:每个用例生成一个负责测试(为后面性能测试做准备)
5、生成TestSuite
这里可以根据习惯更改TestSuite的名称,如TestSuite:PIXManager。
6、在soapUI的左侧生成如下目录
此时新建project已完成!
3.2 发送请求
1、创建项目的时候我们选择了Create sample requests for all
operations,所以每个接口方法都会自动创建一个请求,如下图:
2、双击它就可以打开编辑面板,左边是请求内容,右边是响应内容。
3、在Form页面输入参数,单击 按钮执行,右侧查看结果。
根据反馈的结果判断请求是否发送成功。
输入的xml内容如下:
&?xml version="1.0"
encoding="GB2312"?&
&V_PATIENTREGC
xsi:noNamespaceSchemaLocation="PATIENTREGC.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&
&MEDICALSERVICE_NO&01&/MEDICALSERVICE_NO&
&&&&&&&&&&&&&&&&&&
&NAME&小花&/NAME&
&&&&&&&&&&&&&&&&&&
&BIRTH_DATE&T00:00:00&/BIRTH_DATE&
&GENDER_CD&1&/GENDER_CD&
&GENDER_VALUE&男性&/GENDER_VALUE&
&MARITAL_ST_CD&10&/MARITAL_ST_CD&
&&&&&&&&&&
&MARITAL_ST_VALUE&未婚&/MARITAL_ST_VALUE&
&&&&&&&&&&&&&&&&&
&ID_NO_CD&01&/ID_NO_CD&
&&&&&&&&&&&&&&
&ID_NO_VALUE&居民身份证&/ID_NO_VALUE&
&&&&&&&&&&&&&&
&ID_NO&12586&/ID_NO&
&MEDICARE_CD&01&/MEDICARE_CD&
&&&&&&&&&&&&&&&&
&MEDICARE_VALUE&社会基本医疗保险&/MEDICARE_VALUE&
&&&&&&&&&&&
&MEDICAL_INSURANCE_NO&Y001&/MEDICAL_INSURANCE_NO&
&&&&&&&&&&&&&&&&&&
&AR_CD&111&/AR_CD&
&&&&&&&&&&&&&&&&&
&AD_CD&01&/AD_CD&
&&&&&&&&&&
&AD_VALUE&户籍住址&/AD_VALUE&
&&&&&&&&&&&&&&&&&
&PROVINCE_NAME&上海&/PROVINCE_NAME&
&&&&&&&&&&
&CITY_NAME&上海&/CITY_NAME&
&AREA_NAME&浦东区&/AREA_NAME&
&&&&&&&&&&&&&&&&
&STREET_ID&霞飞路&/STREET_ID&
&&&&&&&&&&&&&&&&
&VILLAGE_NAME&街&/VILLAGE_NAME&
&&&&&&&&&&&&&&
&HOUSE_NO&门牌号&/HOUSE_NO&
&&&&&&&&&&&&&&&
&TEL_TYPE_CD&01&/TEL_TYPE_CD&
&&&&&&&&&&&&
&TEL_TYPE_VALUE&本人电话&/TEL_TYPE_VALUE&
&&&&&&&&&&&&&&&&&&
&TEL_NO&1232312&/TEL_NO&
&REGISTER_DATE&T14:31:00&/REGISTER_DATE&
&&&&&&&&&&&&&&
&RECORDER_NAME&小芳&/RECORDER_NAME&
&&&&&&&&&&&
&REGISTER_PERSON_CODE&01&/REGISTER_PERSON_CODE&
&&&&&&&&&&&&&&&&&&
&REGISTER_ORG_CODE&01&/REGISTER_ORG_CODE&
&REGISTER_ORG_NAME&中科&/REGISTER_ORG_NAME&
&SEND_TIME&T14:32:00&/SEND_TIME&
&SEND_ORG_CODE&&/SEND_ORG_CODE&
&SEND_SYSTEM&&/SEND_SYSTEM&
&/V_PATIENTREGC&
4.WebService性能测试
目前掌握的是两个测试工具soapUI和LoadRunner,其中soapUI可以进行WebService的功能和性能测试,而LoadRunner主要是性能测试。
下面分别介绍两个工具进行WebService性能测试的步骤。
4.1 采用soapUI测试步骤
基于前面soapUI功能测试的步骤,若已成功,可将脚本参数化后用于性能测试,具体步骤如下:
4.1.1 数据生成器
1、右键单击Test Steps,‘Add
Step’-&‘DataGen’,如下图:
2、输入步骤名称
3、设置生成方法
1)&点击 新建
2)&定义名称和类型
Name:自定义,如MEDICALSERVICE_NO
Type:选择‘Number’型,
3)&设置为‘Randomize instead of
4.1.2&参数化
打开待参数化的请求,找到需参数化的内容,选中并右键单击,如下图:。
选择‘Get Data’-&‘Step
1:[DataGen]’-&‘property [MEDICALSERVICE_NO]’
原来的数据被替换为:${DataGen#MEDICALSERVICE_NO}
4.1.3 场景执行和监控
1、打开‘TestSuite:PIXManager’-&‘registerPatientInterface’-&‘Load
Tests’-&‘registerPatientInterface’
2、设置并发线程,单击 执行测试
4.1.4 结果分析
4.2 采用LoadRunner测试步骤
4.2.1 脚本准备
1.选择协议
2、导入wsdl
3、Add Service Call
设置好后生成如下脚本:
web_service_call( "StepName=registerPatientInterface_101",
"SOAPMethod=PIXManager_Service|PIXManager_ServicePort|registerPatientInterface",
&&&&&&&&&&&&&&&&&&
"ResponseParam=response",
&&&&&&&&&&&&&&&&&&
"Service=PIXManager_Service",
&&&&&&&&&&&&&&&&&&
"ExpectedResponse=SoapResult",
&&&&&&&&&&&&&&&&&&
"Snapshot=t.inf",
&&&&&&&&&&&&&&&&&&
BEGIN_ARGUMENTS,
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&
"sendMsgOrgID=",
&&&&&&&&&&&&&&&&&&
"sendMsgPosID=",
&&&&&&&&&&&&&&&&&&
"eventDateTime=",
&&&&&&&&&&&&&&&&&&
"eventDateTimeSpecified=",
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&
END_ARGUMENTS,
&&&&&&&&&&&&&&&&&&
BEGIN_RESULT,
&&&&&&&&&&&&&&&&&&
"return=Param_return",
&&&&&&&&&&&&&&&&&&
END_RESULT,
&&&&&&&&&&&&&&&&&&
4、输入参数
1)输入msgID、sendMsgOrgID、sendMsgPosID、eventDateTime、eventDateTimeSpecified;
&&&&&&&&&&&&&&&&&&
"msgID=11111",
&&&&&&&&&&&&&&&&&&
"sendMsgOrgID=111111",
&&&&&&&&&&&&&&&&&&
"sendMsgPosID=111111",
&&&&&&&&&&&&&&&&&&
"eventDateTime= 10:10:10",
&&&&&&&&&&&&&&&&&&
"eventDateTimeSpecified=true",
2)输入Xml;
&&&&&&&&&&&&&&&&&&
"xml=&?xml version="1.0"
encoding="GB2312"?&
&&&&&&&&&&&&&&&&&&
"&V_PATIENTREGC
xsi:noNamespaceSchemaLocation="PATIENTREGC.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&MEDICALSERVICE_NO&01&/MEDICALSERVICE_NO&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&NAME&小花&/NAME&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&BIRTH_DATE&T00:00:00&/BIRTH_DATE&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&GENDER_CD&1&/GENDER_CD&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&GENDER_VALUE&男性&/GENDER_VALUE&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&MARITAL_ST_CD&10&/MARITAL_ST_CD&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&MARITAL_ST_VALUE&未婚&/MARITAL_ST_VALUE&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&ID_NO_CD&01&/ID_NO_CD&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&ID_NO_VALUE&居民身份证&/ID_NO_VALUE&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&ID_NO&&/ID_NO&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&MEDICARE_CD&01&/MEDICARE_CD&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&MEDICARE_VALUE&社会基本医疗保险&/MEDICARE_VALUE&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&MEDICAL_INSURANCE_NO&Y001&/MEDICAL_INSURANCE_NO&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&AR_CD&111&/AR_CD&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&AD_CD&01&/AD_CD&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&AD_VALUE&户籍住址&/AD_VALUE&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&PROVINCE_NAME&上海&/PROVINCE_NAME&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&CITY_NAME&上海&/CITY_NAME&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&AREA_NAME&浦东区&/AREA_NAME&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&STREET_ID&霞飞路&/STREET_ID&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&VILLAGE_NAME&街&/VILLAGE_NAME&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&HOUSE_NO&门牌号&/HOUSE_NO&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&TEL_TYPE_CD&01&/TEL_TYPE_CD&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&TEL_TYPE_VALUE&本人电话&/TEL_TYPE_VALUE&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&TEL_NO&1232312&/TEL_NO&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&REGISTER_DATE&T14:31:00&/REGISTER_DATE&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&RECORDER_NAME&小芳&/RECORDER_NAME&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&REGISTER_PERSON_CODE&01&/REGISTER_PERSON_CODE&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&REGISTER_ORG_CODE&01&/REGISTER_ORG_CODE&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&REGISTER_ORG_NAME&中科&/REGISTER_ORG_NAME&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&SEND_TIME&T14:32:00&/SEND_TIME&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&SEND_ORG_CODE&&/SEND_ORG_CODE&"
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&SEND_SYSTEM&&/SEND_SYSTEM&"
&&&&&&&&&&&&&&&&&&
&/V_PATIENTREGC&",
5、脚本增强
1)参数化;
2)增加事务并打印返回结果;
lr_start_transaction("registerPatientInterface");
if (strstr(lr_eval_string("{Param_return}"),"C$")==NULL)
&&&&&&&&&&&&&&&&&&
if (strstr(lr_eval_string("{Param_return}"),"empty!")==NULL) {
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
lr_end_transaction("registerPatientInterface", LR_STOP);
&&&&&&&&&&&&&&&&&&&&&&&&&&&
lr_output_message(lr_eval_string("出错了!返回的信息如下:{Param_return}"));
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
lr_end_transaction("registerPatientInterface", LR_FAIL);
&&&&&&&&&&&&&&&&&&&&&&&&&&&
lr_output_message(lr_eval_string("请求成功,保存失败!返回的信息如下:{Param_return}"));
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&
lr_end_transaction("registerPatientInterface", LR_PASS);
&&&&&&&&&&&&&&&&&&
lr_output_message(lr_eval_string("请求成功,保存成功!返回的信息如下:{Param_return}"));
在run-time settings中设置增强日志类型,以便看到更详细的信息。
调试完成后调整为:Send messages only when an error occurs
4)去掉默认的事务划分;
4.2.2 场景执行和监控
1、脚本调试成功后,点击‘Tools’-&‘Create
Controller Scenario’,如下图:
2、设置虚拟用户数,如下图:
3、调整虚拟用户的增长、下降方式
4.2.3 结果分析
4.WebService安全性测试
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Android 访问Webservice接口,参数对象不能串行化问题解决(java.lang.RuntimeException: Cannot serializ-android100学习网
Android 访问Webservice接口,参数对象不能串行化问题解决(java.lang.RuntimeException: Cannot serializ
服务器端Webservice接口参数使用的是自定义结构体,非通用的一些字符串类。Android 客户端使用ksoap2
jar包,使用方法如下:
//调用的方法
服务器端Webservice接口参数使用的是自定义结构体,非通用的一些字符串类。
Android 客户端使用ksoap2
jar包,使用方法如下:
//调用的方法
String methodName = "sceneUserValidate";
//创建httpTransportSE传输对象
HttpTransportSE ht = new HttpTransportSE(SERVICE_URL);//service url
ht.debug =
//使用soap1.1协议创建Envelop对象
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
//实例化SoapObject对象
SoapObject request = new SoapObject(SERVICE_NS, methodName);
* 设置参数,参数名不一定需要跟调用的服务器端的参数名相同,只需要对应的顺序相同即可
SceneUserValidateEvt sevt = new SceneUserValidateEvt();
sevt.setCallNumber("");
sevt.setInaccessInfo(new InaccessInfo("0020001","0020001","12","12","v1.0"));
request.addProperty("SceneUserValidateEvt", sevt);
//将SoapObject对象设置为SoapSerializationEnvelope对象的传出SOAP消息
envelope.bodyOut =
envelope.setOutputSoapObject(request);
Log.d("haha","start = ");
//调用webService
ht.call(SERVICE_NS+methodName, envelope);
Log.d("haha","dump = "+ht.requestDump);
//txt1.setText("看看"+envelope.getResponse());
if(envelope.getResponse() != null){
SoapObject result = (SoapObject) envelope.bodyIn;
String name = result.getProperty(0).toString();
Log.d("haha","返回值 = "+name);
Log.d("haha","返回值 =! ");
}catch (Exception e) {
e.printStackTrace();
运行出现如下错误:
04-12 21:31:12.046: W/System.err(4202): java.lang.RuntimeException: Cannot serialize: com.jh.webservice_visit.SceneUserValidateEvt@41b1ec80
04-12 21:31:12.046: W/System.err(4202): at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:664)
04-12 21:31:12.046: W/System.err(4202): at org.ksoap2.serialization.SoapSerializationEnvelope.writeProperty(SoapSerializationEnvelope.java:649)
04-12 21:31:12.046: W/System.err(4202): at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:604)
04-12 21:31:12.046: W/System.err(4202): at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:582)
04-12 21:31:12.046: W/System.err(4202): at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:658)
04-12 21:31:12.046: W/System.err(4202): at org.ksoap2.serialization.SoapSerializationEnvelope.writeBody(SoapSerializationEnvelope.java:564)
04-12 21:31:12.056: W/System.err(4202): at org.ksoap2.SoapEnvelope.write(SoapEnvelope.java:205)
04-12 21:31:12.056: W/System.err(4202): at org.ksoap2.transport.Transport.createRequestData(Transport.java:111)
04-12 21:31:12.056: W/System.err(4202): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:121)
04-12 21:31:12.056: W/System.err(4202): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:96)
04-12 21:31:12.056: W/System.err(4202): at com.jh.webservice_visit.MainActivity.startWebservice(MainActivity.java:72)
04-12 21:31:12.056: W/System.err(4202): at com.jh.webservice_visit.MainActivity.access$0(MainActivity.java:40)
04-12 21:31:12.056: W/System.err(4202): at com.jh.webservice_visit.MainActivity$2.run(MainActivity.java:113)04-12 21:31:12.056: W/System.err(4202): at java.lang.Thread.run(Thread.java:856)
第一反应将SceneUserValidateEvt结构体implements Serializable,可是运行后还是如上提示错误。
goolge串行化失败的大多数场景与我的不符合,网上比较多的是一些Integer.class 串行失败的场景,不过后来想了想翻了一下ksoap的包
有一个这个接口类org.ksoap2.serialization.KvmS
尝试了一下将SceneUserValidateEvt结构体implements KvmSerializable,并实现了以下4个接口,运行成功OK。
public abstract interface org.ksoap2.serialization.KvmSerializable {
// Method descriptor #4 (I)Ljava/lang/O
public abstract java.lang.Object getProperty(int arg0);
// Method descriptor #6 ()I
public abstract int getPropertyCount();
// Method descriptor #8 (ILjava/lang/O)V
public abstract void setProperty(int arg0, java.lang.Object arg1);
// Method descriptor #10 (ILjava/util/HLorg/ksoap2/serialization/PropertyI)V
public abstract void getPropertyInfo(int arg0, java.util.Hashtable arg1, org.ksoap2.serialization.PropertyInfo arg2);
Android客户端能正常访问到Webservice接口了。

我要回帖

更多关于 webservice是什么 的文章

 

随机推荐