【浏览器作为客户端】
利用ajax,但是要提前组合soap信封字符串,可以使用工具soapui,自动生成soap信封,在问号处填补参数。
【java写客户端】
法一:【远程调用,不必生成本地客户端代码】利用axis,代码如下:
//获取请求参数
String jobID = soapReq. getString( "jobID");
if (jobID ==null|| jobID. length() == ) return succeed;
Object[]paramsObj = new Object[];
paramsObj [ ] = jobID ;
try {
Service service = new Service() ;
Call call;
call = (Call)service. createCall() ;
call .setTargetEndpointAddress (new URL(TARGET_URL ));
call .setOperation (operation );
call .addParameter (new QName( namespace,
"jobID"), XMLType .XSD_STRING, ParameterMode.IN );
call .setReturnType (XMLType.XSD_STRING) ;
String returnResult = (String) call.invoke( NAMESPACE,operation ,paramsObj ); //执行
if( !returnResult .equals ("0" )) return succeed;//执行错误
succeed = true; resultObj. put( "result", succeed );
期间发生过一次错误: 无效的编码名称 “utf-8; action=”“”,原因是客户端生成的http请求头不能被服务端识别,将依赖远程axis后,问题解决(之前是axis2);
法二:【使用wsimport,利用wsdl生成客户端代码,在本地调用】。
命令
出现了错误
原因在wsdl中,
,使用的address为localhost,所以连接不上。(service是远程地址的绑定)解决办法是如下代码: