`

带有安全策略的axis2实现方式(二)

阅读更多
客户端

1、所需文件

client.jks,放在工程的src下   (与service.jks是一对,具体生成方法可上网查询)

2、客户端生成方式

从apache官方网站上下载 axis2-1.4.1-bin.zip(如果所用的jar包是1.6的也行),然后解压缩,打开dos命令输入窗口(在运行中输入 cmd  ,然后回车即可),从窗口进入到解压缩的文件中,具体到bin目录下,例如:F:\axis2-1.4.1-bin\axis2-1.4.1\bin ,然后输入命令:

wsdl2java -uri http://localhost:8080/test/services/ReceiveMsgService?wsdl -p com.test.client -s -o stub

http://localhost:8080/axis2/services/SimpleService?wsdl 为需要调用的接口地址

com.test.client 为生成的代码所在的包结构
stub 为代码所在文件夹

通过该命令生成的代码保存在 bin 文件夹下,新建一个工程,将代码放入即可;生成的客户端的类为ReceiveMsgServerStub,里面包含了输入输出类,需要调用的方法等。

如果该命令无法生成代码,提示jdk不可用,则表示本机的没有配置java环境变量,需要重新配置环境变量。

3、调用客户端的代码

      import java.rmi.RemoteException;
      import java.util.Properties;

      import org.apache.axis2.AxisFault;
      import org.apache.axis2.client.ServiceClient;
      import org.apache.axis2.context.ConfigurationContext;
      import org.apache.axis2.context.ConfigurationContextFactory;
      import org.apache.axis2.description.PolicyInclude;
      import org.apache.neethi.Policy;
      import org.apache.rampart.policy.model.CryptoConfig;
      import org.apache.rampart.policy.model.RampartConfig;

      public class ClientTest {

         public static void testMsg() throws AxisFault {
              ConfigurationContext ctx = ConfigurationContextFactory .createConfigurationContextFromFileSystem("rampart", null);

              ReceiveMsgServerStub stub = new ReceiveMsgServerStub(ctx, "http://localhost:8080/test/services/receiveMsgServer");

              ServiceClient sc = stub._getServiceClient();
              sc.engageModule("rampart");

              RampartConfig rampartConfig = new RampartConfig();
              rampartConfig.setUser("client");
              rampartConfig.setPwCbClass("client.PWCBHandler");

             CryptoConfig sigCrypto = new CryptoConfig();
             sigCrypto.setProvider("org.apache.ws.security.components.crypto.Merlin");

             Properties props = new Properties();
             props.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "JKS");
             props.setProperty("org.apache.ws.security.crypto.merlin.file", "client.jks");
             props.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "clientPW");

             sigCrypto.setProp(props);

             rampartConfig.setSigCryptoConfig(sigCrypto);
             Policy policy = new Policy();
             policy.addAssertion(rampartConfig);

             sc.getAxisService().getPolicyInclude().addPolicyElement(PolicyInclude.AXIS_SERVICE_POLICY, policy);

             ReceiveMsgServerStub.Message message = new ReceiveMsgServerStub.Message();
             message.setMsgId("001");
             message.setMsgName("ZHANGRR");
             ReceiveMsgServerStub.ReceiveMessage messageRequest = new ReceiveMsgServerStub.ReceiveMessage();
             messageRequest.setParam0(message);

             ReceiveMsgServerStub.ReceiveMessageResponse response;
             try {
                      response = stub.receiveMessage(messageRequest);
                      System.out.println(response.get_return());
              } catch (RemoteException e) {
                      e.printStackTrace();
              }
        }

     }

分享到:
评论

相关推荐

    axis2客户端调用服务端,带用户身份认证

    Axis2提供了一种高效、灵活且可扩展的方式来实现服务端和客户端的服务调用。当涉及到“axis2客户端调用服务端,带用户身份认证”时,我们主要关注的是如何在 Axis2 客户端中添加安全机制,确保只有经过验证的用户...

    axis2学习——开发自定义的axis2服务

    标题中的“axis2学习——开发自定义的axis2服务”表明了本文主要涉及Apache Axis2框架,这是一个用于构建Web服务和SOA(Service-Oriented Architecture)应用的开放源码平台。Axis2允许开发者创建、部署和管理服务,...

    axis2服务端源码,带用户身份认证

    在“axis2服务端源码,带用户身份认证”这个项目中,我们关注的是如何在Axis2服务端实现安全的身份验证机制,确保只有经过授权的用户能够访问服务。 1. **Axis2框架**: Axis2是Java Web服务的核心引擎,它提供了...

    Axis2 1.6.2 实践示例

    这个实践示例将带你深入理解Axis2 1.6.2版本的使用,包括其核心功能和常见应用场景。 1. **Axis2简介** - **什么是Axis2?** Axis2是Java平台上基于SOAP协议的Web服务实现,提供了强大的服务宿主和服务调用能力,...

    axis2集成到已有项目操作实例(含源代码)

    这可以通过编写一个Java类并使用Axis2的注解来实现,例如`@WebService`。这个类将作为服务端点,对外提供服务。同时,你需要定义服务接口,这将定义客户端调用的API。 部署服务到Axis2服务器是集成的关键步骤。你...

    axisjar包压缩axis.zip

    5. **扩展和插件**:轴允许通过模块和策略进行扩展,可以添加新的协议、数据格式或安全特性。 压缩文件"axis.zip"内的子文件可能是以下一些关键的Axis库文件: - `axis.jar`:这是核心库,包含用于处理Web服务请求...

    实现WebService 的 Axis jar包

    在实际项目中,还需要注意配置文件(如axis-server.xml和axis-client.xml)的设置,以及可能的SOAP消息头和安全策略。对于复杂的Web服务,可能还需要处理事务、异常处理和性能优化等问题。 总之,Axis为开发者提供...

    axis1-WebService

    这通常涉及到MIME多部分编码,使文件能够以二进制形式安全地在网络上传输。 **八、常用命令介绍** Axis提供了一系列命令行工具,如`wsdl2java`用于从WSDL文件生成Java代码,`java2wsdl`则相反,可以从Java类生成...

    AXIS配置文档例子

    - AXIS支持WS-Security,可以实现Web服务的安全认证和加密。 - 通过调整配置文件,可以优化服务的并发能力、缓存策略以及错误重试机制,提升服务性能。 8. **故障排查**: - 当服务运行出现问题时,查看AXIS的...

    Develop Web Services With Apache Axis

    本书详细介绍了如何使用Apache Axis处理带有附件的SOAP消息,这对于处理复杂业务场景尤为重要。 5. **如何加固Apache Axis安装**:安全是Web服务的重要方面之一。本书探讨了如何通过一系列技术和策略来提高Apache ...

    纯java调用ws-security+CXF实现的webservice安全接口

    3. **添加拦截器**:将创建的安全上下文拦截器添加到CXF客户端中,以便在发送请求时执行安全策略。通常,你会在客户端调用服务前添加`WSS4JOutInterceptor`。 4. **处理响应**:在接收服务响应时,可能需要检查消息...

    java调用.net webservice时所需的jar包

    - 跨域调用可能需要配置额外的安全策略,例如添加信任的证书或者设置正确的SOAP头。 - 错误处理和异常捕获是必不可少的,因为网络通信中可能会出现各种问题。 8. **示例代码**: ```java Service service = ...

    三菱&发那科三轴UG后处理

    2. **识别三菱与发那科攻丝指令的区别**:不同的数控系统有自己的指令集,例如,三菱可能使用G81-G89来表示不同的攻丝循环,而发那科可能使用M60-M69。理解这些指令的差异对于编写兼容两者系统的后处理器至关重要,...

    Web 服务规范_第 4 部分:WS-Security源码

    在实际开发中,WS-Security的实现通常依赖于库,如Apache CXF、Axis2或Spring-WS,它们提供了API来简化WS-Security的集成。开发者可以通过这些库轻松地在SOAP消息中添加和验证安全元素。 为了实现WS-Security,...

    Delphi TDBChart实现统计

    这可能涉及到数据分页、缓存策略以及合理选择图表类型和渲染方式。同时,实时更新图表时,应考虑异步加载和更新,以避免阻塞用户界面。 9. **扩展功能** 除了基础的统计图,TDBChart还支持交互式特性,如鼠标悬停...

    ws-security jar

    这个库可能还包括了处理WS-Security头信息的解析和验证,以及生成带有安全信息的SOAP消息的功能。 总的来说,"ws-security jar" 是一个重要的工具,对于那些希望在Java环境中构建安全的Web服务应用程序的开发者来说...

    win7操作系统 远程终端

    尤其在Windows 7操作系统中,远程终端服务(Remote Desktop Services,RDS)为用户提供了便捷的方式,使得用户可以在一台计算机上操控另一台计算机,实现了跨越地理位置的远程协作和工作。本文将深入探讨Win7操作...

    ASP EXCEL导入SQL

    它们的新的项目分别是ApacheCXF和Axis2.Java语言也制定关于REST网络服务规范:JAX-RS:JavaAPIforRESTfulWebServices(JSR311)。相信还会出现更多与REST相关的激动人心的信息。  REST与AJAX技术  尽管AJAX技术的...

    onvif最新官方文档

    根据提供的文档信息,我们可以了解到这份文档是关于ONVIF Profile Q规范的一个版本,具体为Release Candidate版本...对于从事网络视频产品的开发人员来说,了解这些规范是非常必要的,有助于确保产品的兼容性和安全性。

    安防行业标准专业对比解读.pdf

    总结来说,ONVIF、PSIA、HDCCTV和GB/T 28181标准在安防行业的发展中起到了桥梁和纽带的作用,它们各自有不同的侧重点和优势。ONVIF在兼容性和市场占有率方面表现突出,PSIA在灵活性方面占优,HDCCTV专注模拟高清传输...

Global site tag (gtag.js) - Google Analytics