使用axis2访问webservice(webserivice基于.net平台实现)

本文介绍如何利用Axis2访问基于.NET平台构建的WebService。首先提供了一个WebService的URL,然后详细说明了下载并解压Axis2组件后,如何在命令行使用wsdl2java工具生成Java代理类。生成的代理类被复制到项目中,通过指定的包名进行引用。在调用WebService时,文章提到了一种设置参数的方法,该方法与C#在Visual Studio中生成代理的体验相似。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用axis2访问webservice(webserivice基于.net平台实现)

2015-10-12 10:37 by JerremyZhang, ... 阅读, ... 评论, 收藏, 编辑

webservice url=http://10.90.11.240:8081/ExceptionWebService.asmx?WSDL;

下载axis2组件,解压,进入bin目录,通过命令wsdl2java -uri http://10.90.11.240:8081/ExceptionWebService.asmx?WSDL -p com.zsp.proxy -s -o source

-uri 后面运行的是 你的wsdl地址, -p 是文件生成的包名 -o source生成的文件目录,在bin目录下。

把生成的代理类,拷贝到你的工程目录中,导入对应的包即可访问:

例如

POST /ExceptionWebService.asmx HTTP/1.1
Host: 10.90.11.240
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/ApproveException"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ApproveException xmlns="http://tempuri.org/">
      <eventName>string</eventName>
      <description>string</description>
      <occurTime>string</occurTime>
      <livingPlace>string</livingPlace>
      <eventLevel>一般 or 急件 or 紧急 or 特急</eventLevel>
      <bussinessCategory>运销 or 管道 or 设备 or HSE or 经营 or 管理 or 工程 or 科技 or 信息 or 党群 or 其它</bussinessCategory>
      <reporterId>string</reporterId>
      <contact>string</contact>
      <systemId>string</systemId>
      <businessPK>string</businessPK>
      <remark>string</remark>
      <isRelease>boolean</isRelease>
      <measures>string</measures>
    </ApproveException>
  </soap:Body>
</soap:Envelope>

访问时:

public class Test2 {

    public static void main(String[] args) throws RemoteException {
        // TODO Auto-generated method stub
        ExceptionServiceStub proxy = new ExceptionServiceStub();

        ExceptionServiceStub.ApproveException exp = new ExceptionServiceStub.ApproveException();
        exp.setContact("374378");
        exp.setDescription("描述");
        exp.setEventName("测试异常");
        exp.setIsRelease(true);
        exp.setLivingPlace("发生地点");
        exp.setMeasures("47477474");
        exp.setOccurTime("2019-09-09");
        exp.setSystemId("xj_001");
        exp.setRemark("备注");
        exp.setEventLevel(EmergencyDegree.一般);
        exp.setBussinessCategory(BusinessCategory.HSE);
        exp.setBusinessPK("bpk");
        exp.setReporterId("xxxx");
        ApproveExceptionResponse res = proxy.approveException(exp);
        System.out.println(res.getApproveExceptionResult());
    }

}

使用内部类的方式设置参数,很方便,这种方式和C#通过VS生成代理的操作方式基本一致。

客户端需要导入的包如下:

服务安全代理(securityproxy)介绍 war包 运行环境为 jdk1.5+tomcat5+ant+axis2v1.4.1+rampartv1.4 需要的lib如图lib-need-pic.jpg所示(可从官网下载这些lib) 1)webservice的安全需求 安全性 服务访问需要适当的访问控制:认证授权、机密性、完整性。安全性可以分为3级。 灵活性 设计态服务无需考虑安全治理,所以要求提供灵活的的运行态安全标准支持。服务的安全架构是影响服务安全灵活性的重要因素。 适应性 在各种平台下对服务提供统一的安全、审计、日志管理。简化服务提供和服务管理,服务安全及基础设施实施复杂性小。 2)服务安全代理(securityproxy)实现原理 通过设置安全策略(Policy)对服务(webservice)提供实时的访问管理和控制。 通过策略来控制和管理对服务的访问,能够简单灵活的实现访问服务时的安全机制。 服务安全代理(securityproxy)在管理节点(Managed Endpoint)实现策略 服务安全代理(securityproxy)改变了客户端与服务节点的连接结构 ——它创建了一个管理节点插入到客户端与服务节点之间 一个节点(Endpoint)指对应某个服务的地址(URL)。 随后客户端直接与管理节点连接,而不是与实际的服务节点连接 在管理节点中,服务安全代理(securityproxy)拦截消息并验证他们是否符合策略。 把安全的实现从复杂的编程中解脱出来,通过策略配置实时的组成不同的策略集合实施起来。 通过服务安全代理(securityproxy)可以 ●Authentication(认证) 发送消息时添加用户名令牌或数字签名。接收消息时验证用户名令牌或数字签名。 ●Encryption(加密) 在两个节点之间加密信息。发送信息时加密,接收信息时自动解密。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值