Java 使用ApacheAxis2和Rampart创建Web服务客户端

Java 使用ApacheAxis2和Rampart创建Web服务客户端,java,axis2,rampart,Java,Axis2,Rampart,我们需要在IBM Websphere Integration Developer 6.1中创建具有用户名令牌安全性的Web服务。现在,为了测试这一点,我们必须用Java开发一个Web服务客户机。要求是使用ApacheAxis2完成这项工作。在对此做了大量阅读之后,我能够使用Axis2为一个不需要身份验证的简单Web服务生成一个客户端,并且能够正确地测试它。但我知道,为了在axis2中使用用户名令牌安全性,需要rampart 现在我需要知道如何在eclipse中使用Rampart和Axis2。我们

我们需要在IBM Websphere Integration Developer 6.1中创建具有用户名令牌安全性的Web服务。现在,为了测试这一点,我们必须用Java开发一个Web服务客户机。要求是使用ApacheAxis2完成这项工作。在对此做了大量阅读之后,我能够使用Axis2为一个不需要身份验证的简单Web服务生成一个客户端,并且能够正确地测试它。但我知道,为了在axis2中使用用户名令牌安全性,需要rampart

现在我需要知道如何在eclipse中使用Rampart和Axis2。我们的系统中没有安装apache服务器,但我们在eclipse中部署它。 即使在读了很多关于同一问题的文章后,我仍然无法让Rampart发挥作用

有人可以指导我在eclipse中配置Rampart的步骤,以及如何使用用户名令牌生成WebService客户端吗

到目前为止,我使用Axis2完成了以下步骤。 1.创建一个Java项目并将所需的WSDL导入其中。 2.使用wsdl,我创建了WebServiceClient,并生成了以下类型的文件 A.java接口文件 B实现A中提到的接口的Java代理文件。 C一个java存根文件,它扩展org.apache.axis.client.stub并实现了A中提到的接口。 D又是一个接口的java服务文件 E实现上述接口的java ServiceLocator文件

因此,我还需要知道如何使用这些文件来测试用户名令牌Web服务

当我使用动态Web项目执行上述操作并右键单击WSDLs并单击generate client时,将创建ServiceCallBackHandler.java和HttpSrviceStub文件。我如何使用这些来实现测试


谢谢。

我没有将rampart用于用户名令牌,但对于我的服务(签名和加密),IBM文档非常有用。看看:JavaWeb服务:Axis2 WS-Security基础;请参阅如何将Rampart安装到Axis2中并实现UsernameToken处理

对于我的项目,当我使用WS-Security(工作环境)和不使用WS-Security(测试环境)时,Java源代码是相同的。我在客户端it上所要做的就是从
my_client/axis repo/conf/axis2.xml
启用/禁用rampart配置。查看:您将在其中找到可能对您有用的配置示例:

<parameter name="OutflowSecurity">
        <action>
                <items>UsernameToken</items>
                <user>bob</user>
                <passwordCallbackClass>org.apache.rampart.
                samples.sample02.PWCBHandler</passwordCallbackClass>
        </action>
</parameter>

令牌
上下快速移动
org.apache.rampart。
samples.sample02.PWCBHandler

首先,您必须在axis2模块文件中加载rampart模块文件。 然后在lib文件夹中加载rampart所需的库。然后使用回调处理程序类,在该类中定义用户名和密码的逻辑。 以上所有内容都可以在ramart源代码和rampart文件夹中找到。你必须从rampart网站下载 然后在axis2.xml中,您必须定义标记

<parameter name="InflowSecurity">
  <action>
    <items>UsernameToken</items>
    <user>jaideep</user>
    <passwordCallbackClass>com.mltvacations.externalapi.callbackhandler.PasswordCallbackHandler</passwordCallbackClass>
    <passwordType>PasswordText</passwordType>


  </action>
</parameter> 


令牌
贾迪普
com.mltvacations.externalapi.callbackhandler.PasswordCallbackHandler
密码文本
带in标签。然后运行web服务,复制wsdl的地址并放入soapUi,然后添加身份验证头。检查一下


如果有任何问题,请告诉我。我会给你满意的答案,因为我使用了rampart security。

嗨,谢谢你提供的信息。我将浏览这些链接并回复您。嗨,Michael,您的建议就是我在axis2.xml中使用的,而且很有效!!我所做的唯一更改是,由于我不使用密码处理程序类,我用标记替换了该标记,并直接输入了密码。为我工作。非常感谢你的建议。:)没问题!你可以接受我的答案,这样它就不会被列为未回答,我们会得到更多的“分数”。我只是想支持@MichałNiklas对这篇文章的建议:我不知道为什么我的谷歌搜索中没有出现这个问题,我一定是使用了错误的搜索词。非常有帮助——谢谢!