客户端
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服务”表明了本文主要涉及Apache Axis2框架,这是一个用于构建Web服务和SOA(Service-Oriented Architecture)应用的开放源码平台。Axis2允许开发者创建、部署和管理服务,...
在“axis2服务端源码,带用户身份认证”这个项目中,我们关注的是如何在Axis2服务端实现安全的身份验证机制,确保只有经过授权的用户能够访问服务。 1. **Axis2框架**: Axis2是Java Web服务的核心引擎,它提供了...
这个实践示例将带你深入理解Axis2 1.6.2版本的使用,包括其核心功能和常见应用场景。 1. **Axis2简介** - **什么是Axis2?** Axis2是Java平台上基于SOAP协议的Web服务实现,提供了强大的服务宿主和服务调用能力,...
这可以通过编写一个Java类并使用Axis2的注解来实现,例如`@WebService`。这个类将作为服务端点,对外提供服务。同时,你需要定义服务接口,这将定义客户端调用的API。 部署服务到Axis2服务器是集成的关键步骤。你...
5. **扩展和插件**:轴允许通过模块和策略进行扩展,可以添加新的协议、数据格式或安全特性。 压缩文件"axis.zip"内的子文件可能是以下一些关键的Axis库文件: - `axis.jar`:这是核心库,包含用于处理Web服务请求...
在实际项目中,还需要注意配置文件(如axis-server.xml和axis-client.xml)的设置,以及可能的SOAP消息头和安全策略。对于复杂的Web服务,可能还需要处理事务、异常处理和性能优化等问题。 总之,Axis为开发者提供...
- AXIS支持WS-Security,可以实现Web服务的安全认证和加密。 - 通过调整配置文件,可以优化服务的并发能力、缓存策略以及错误重试机制,提升服务性能。 8. **故障排查**: - 当服务运行出现问题时,查看AXIS的...
本书详细介绍了如何使用Apache Axis处理带有附件的SOAP消息,这对于处理复杂业务场景尤为重要。 5. **如何加固Apache Axis安装**:安全是Web服务的重要方面之一。本书探讨了如何通过一系列技术和策略来提高Apache ...
3. **添加拦截器**:将创建的安全上下文拦截器添加到CXF客户端中,以便在发送请求时执行安全策略。通常,你会在客户端调用服务前添加`WSS4JOutInterceptor`。 4. **处理响应**:在接收服务响应时,可能需要检查消息...
- 跨域调用可能需要配置额外的安全策略,例如添加信任的证书或者设置正确的SOAP头。 - 错误处理和异常捕获是必不可少的,因为网络通信中可能会出现各种问题。 8. **示例代码**: ```java Service service = ...
2. **识别三菱与发那科攻丝指令的区别**:不同的数控系统有自己的指令集,例如,三菱可能使用G81-G89来表示不同的攻丝循环,而发那科可能使用M60-M69。理解这些指令的差异对于编写兼容两者系统的后处理器至关重要,...
在实际开发中,WS-Security的实现通常依赖于库,如Apache CXF、Axis2或Spring-WS,它们提供了API来简化WS-Security的集成。开发者可以通过这些库轻松地在SOAP消息中添加和验证安全元素。 为了实现WS-Security,...
这可能涉及到数据分页、缓存策略以及合理选择图表类型和渲染方式。同时,实时更新图表时,应考虑异步加载和更新,以避免阻塞用户界面。 9. **扩展功能** 除了基础的统计图,TDBChart还支持交互式特性,如鼠标悬停...
这个库可能还包括了处理WS-Security头信息的解析和验证,以及生成带有安全信息的SOAP消息的功能。 总的来说,"ws-security jar" 是一个重要的工具,对于那些希望在Java环境中构建安全的Web服务应用程序的开发者来说...
尤其在Windows 7操作系统中,远程终端服务(Remote Desktop Services,RDS)为用户提供了便捷的方式,使得用户可以在一台计算机上操控另一台计算机,实现了跨越地理位置的远程协作和工作。本文将深入探讨Win7操作...
它们的新的项目分别是ApacheCXF和Axis2.Java语言也制定关于REST网络服务规范:JAX-RS:JavaAPIforRESTfulWebServices(JSR311)。相信还会出现更多与REST相关的激动人心的信息。 REST与AJAX技术 尽管AJAX技术的...
根据提供的文档信息,我们可以了解到这份文档是关于ONVIF Profile Q规范的一个版本,具体为Release Candidate版本...对于从事网络视频产品的开发人员来说,了解这些规范是非常必要的,有助于确保产品的兼容性和安全性。
总结来说,ONVIF、PSIA、HDCCTV和GB/T 28181标准在安防行业的发展中起到了桥梁和纽带的作用,它们各自有不同的侧重点和优势。ONVIF在兼容性和市场占有率方面表现突出,PSIA在灵活性方面占优,HDCCTV专注模拟高清传输...