首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Web Services的两种访问步骤RPC与SOAP

2012-08-25 
Web Services的两种访问方法RPC与SOAP目录:1、RPC请求样例2、SOAP请求样例3、完整请求样例内容:1、RPC请求样例

Web Services的两种访问方法RPC与SOAP

目录:

1、RPC请求样例

2、SOAP请求样例

3、完整请求样例

内容:

1、RPC请求样例

??? RPC请求Java代码:

2、SOAP请求样例

//service服务对象Service service = (Service) Class.forName("org.apache.axis.client.Service").newInstance();Call call = service.createCall();//设置请求目标地址call.setTargetEndpointAddress(RquestConstant.ENDPOINT);QName qname = new QName(null,RquestConstant.METHOD_NAME);//设置请求目标方法call.setOperationName(qname);//定义存储认证用户信息对象Map<String, String> header = new Hashtable<String, String>();header.put(Call.USERNAME_PROPERTY, RquestConstant.PUBLIC_USER);header.put(Call.PASSWORD_PROPERTY, RquestConstant.PUBLIC_PASSWORD);        //将认证信息放入调用对象的属性中call.setProperty(HTTPConstants.REQUEST_HEADERS, header);    Object ret = call.invoke(arguments);    //打印调用结果    System.out.println(ret);

?

SOAP请求Java代码:

?

?

//SOAP连接工厂SOAPConnectionFactory soapConnFactory = SOAPConnectionFactory.newInstance();//soap工厂SOAPFactory soapFactory = SOAPFactory.newInstance();//消息工厂MessageFactory factory = MessageFactory.newInstance();SOAPBody soapBody = null;SOAPConnection conn = null;try{//创建soap连接conn = soapConnFactory.createConnection();//创建消息SOAPMessage message = factory.createMessage();//读取消息构件SOAPPart soapPart = message.getSOAPPart();//读取消息壳SOAPEnvelope envelope = soapPart.getEnvelope();//读取消息体SOAPBody body = envelope.getBody();//请求方法对象Name requestMethodName = soapFactory.createName(RquestConstant.METHOD_NAME);//将请求方法对象添加到消息体中SOAPBodyElement requestMethodElement = body.addBodyElement(requestMethodName);//为请求构造参数对象Name parameterIn = soapFactory.createName("in0");//将参数添加到请求方法对象中SOAPElement parameterEle = requestMethodElement.addChildElement(parameterIn);//赋值给参数parameterEle.addTextNode(arguments);//添加用户认证信息MimeHeaders hd = message.getMimeHeaders();hd.addHeader(Call.USERNAME_PROPERTY, RquestConstant.PUBLIC_USER);hd.addHeader(Call.PASSWORD_PROPERTY, RquestConstant.PUBLIC_PASSWORD);//使所有更改生效message.saveChanges();//将此消息对象写入给定输出流message.writeTo(System.out);//包装目标地址URL endpoint = new URL(RquestConstant.ENDPOINT);//发生请求SOAPMessage response = conn.call(message, endpoint);//读取结果soapBody = response.getSOAPBody();}catch(Exception e){throw e;}finally{conn.close();}System.out.println("消息内容:" + soapBody);

?

3、完整请求样例

??? 见附件,所需要jar包与Web Service附加身份认证样例jar包相同。

?

?

?

热点排行