我正在使用 Axis2 创建一个 Web 服务,它使用 Rampart 进行身份验证。在 Rampart 的所有示例中,客户端需要有一个用于 Axis2 的客户端存储库。Rampart 在客户端启动如下:
ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem("path/to/client/repo", null);
SecureServiceStub stub = new SecureServiceStub(ctx,"https://localhost:8443/axis2/services/SecureService");
ServiceClient sc = stub._getServiceClient();
sc.engageModule("rampart");
方法 createConfigurationContextFromFileSystem 需要客户端上的 Axis2 存储库的路径,该存储库具有 armart.mar 文件。它显然需要一个完整的绝对路径,而不是相对路径。
但是,我正在使用 Java Web Start 部署我的客户端,我无法在可能需要运行客户端的每台机器上都放置一个 Axis2 存储库。它需要通过网络浏览器在任何机器上工作,因此客户端需要的所有内容都在 jar 中。有什么方法可以从我的客户端应用程序的 jar 中加载rampart.mar 文件?
另一种可能性是使用 ConfigurationContextFactory.createConfigurationContextFromURIs 方法,但这需要我在服务器上创建一个 axis2+rampart 的在线存储库。有人知道这方面的好指南吗?我还是更喜欢把所有东西都打包在罐子里。