`
雨过天晴0521
  • 浏览: 161023 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于axis2-1.6.2中的basic authentication

 
阅读更多
axis2-1.6.2有所变化, 使用WSDL2Java选择ADB binding方式生成的代理类全都放在XXXStub内部, 作为内部类. 也许这样在java的IDE中看起来比较干净简洁吧.

但是当我调用XXXStub时, 发现提供basic用户和密码验证的代码部分
String endpoint = "http://localhost:8080/mcr.httpbasic/services/GovObjStatsService";
GovObjStatsServiceStub stub = new GovObjStatsServiceStub("endpoint");
ServiceClient client = stub._getServiceClient();
Options options = client.getOptions();
HttpTransportProperties.Authenticator 
auth = new HttpTransportProperties.Authenticator();
auth.setUsername("admin");
auth.setPassword("123456");
options.setProperty(HTTPConstants.AUTHENTICATE, auth);
...

居然没起作用, 仍然返回error 401. 于是查看生成的XXXStub类和Aixs2的源代码, 原来生成的XXXStub没有override Stub类,  ._getServiceClient() 获得的ServiceClient和XXXStub里面create的ServiceClient不是同一个. 所以即使传入autherticator也不好使.

解决方法如下, 我们可以在XXXStub中修改一下, 在它createClient的方法中多传入一个参数, 既把authenticator传进去就可以了, 修改如下, 黑色字体为修改部分.

public  com.tibco.governance.mcr.stats.api.GovObjStatsServiceStub.GetGovernedObjectStatsByFiltersResponse getGovernedObjectStatsByFilters(
com.tibco.governance.mcr.stats.api.GovObjStatsServiceStub.GetGovernedObjectStatsByFilters getGovernedObjectStatsByFilters0,
HttpTransportProperties.Authenticator auth) throws java.rmi.RemoteException, com.tibco.governance.mcr.stats.api.AdminExceptionException{

        org.apache.axis2.context.MessageContext _messageContext = null;
        try{
               org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[0].getName());
              _operationClient.getOptions().setAction("urn:getGovernedObjectStatsByFilters");
              _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);

_operationClient.getOptions().setProperty(HTTPConstants.AUTHENTICATE, auth);
...
...

调用XXXStub的代码如下

String endpoint = "http://localhost:8080/mcr.httpbasic/services/GovObjStatsService";
GovObjStatsServiceStub stub = new GovObjStatsServiceStub("endpoint");
HttpTransportProperties.Authenticator
auth = new HttpTransportProperties.Authenticator();
auth.setUsername("admin");
auth.setPassword("123456");

GetGovernedObjectStatsByFilters request = new GetGovernedObjectStatsByFilters();

... // new and set params to request

GetGovernedObjectStatsByFiltersResponse response =
stub.getGovernedObjectStatsByFilters(request, auth);

System.out.println("Count = " + response.get_return().getResultCount());
分享到:
评论

相关推荐

    axis2-1.6.2

    axis2-1.6.2.zip, windows axis2工具,根据 WSDL生成java文件。 1、axis2客户端下载地址:http://mirror.esocc.com/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip; 2、下载解压在D:\Work_Program_...

    axis2-1.6.2.zip

    axis2-1.6.2.zip, windows axis2工具,根据 WSDL生成java文件。 1、axis2客户端下载地址:http://mirror.esocc.com/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip; 2、下载解压在D:\Work_Program_...

    Axis2-1.6.2-bin和Axis2-1.6.2-war

    - **生产环境**:如果要在生产环境中部署Web服务,Axis2-1.6.2-war更合适,因为它可以直接部署到现有的Web服务器,与其它Web应用共存。 4. **使用与配置** - 使用这两个版本的Axis2都需要对Java和Web服务有一定的...

    axis2-1.6.2-war.zip

    标题中的"axis2-1.6.2-war.zip"指的是Apache Axis2的1.6.2版本的Web服务部署包,以WAR(Web ARchive)格式打包。Apache Axis2是一个强大且灵活的Web服务引擎,它允许开发人员创建、部署和管理Web服务。这个版本的...

    Axis2-1.6.2

    标题 "Axis2-1.6.2" 指的是Apache Axis2的1.6.2版本,这是一个开源的Web服务引擎,专为构建高效、高性能的SOAP(Simple Object Access Protocol)服务而设计。SOAP是一种基于XML的协议,用于在Web上交换结构化的和...

    axis2-eclipse-codegen-plugin-1.6.2和axis2-eclipse-service-plugin-1.6.2

    标题中的"axis2-eclipse-codegen-plugin-1.6.2和axis2-eclipse-service-plugin-1.6.2"指的是两个与Apache Axis2相关的Eclipse插件:Axis2代码生成插件和Axis2服务插件,它们是版本1.6.2的。Apache Axis2是一个流行的...

    axis2-1.6.2-war+axis2-1.6.1-war+axis2-1.6.2-bin

    标题中的"axis2-1.6.2-war+axis2-1.6.1-war+axis2-1.6.2-bin"表明这是一个包含不同版本的Apache Axis2服务框架的集合。Axis2是Apache软件基金会开发的一个Web服务引擎,它主要用于创建和部署Web服务以及处理SOAP消息...

    axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip

    标题中的"axis2-eclipse-codegen-plugin-1.6.2.zip"和"axis2-eclipse-service-plugin-1.6.2.zip"是两个与Apache Axis2相关的Eclipse插件,用于简化Web服务的开发过程。Apache Axis2是Java平台上一个成熟的Web服务...

    axis2-1.6.2 所需最少的jar 包 亲测!!!

    这个标题 "axis2-1.6.2 所需最少的 jar 包 亲测!!!" 指出,这是一个精简版的 Axis2 依赖集合,经过测试,可以确保基本功能的正常运行,无需额外的 jar 包。 描述中的 "自己亲自测试过!可以直接运行,没有问题" ...

    axis2-1.6.2-all完整包(源码发布版本包docs文档war包)下载.txt

    该下载包含axis2-1.6.2-bin.zip发布执行版、axis2-1.6.2-docs.zip文档包、axis2-1.6.2-src.zip源码包、axis2-1.6.2-war.zip项目包。

    axis2-1.6.2-war axis2-1.6.2-bin

    标题中的"axis2-1.6.2-war"和"axis2-1.6.2-bin"指的是Apache Axis2的不同版本发布形式,这两个是Apache Axis2 Web服务框架的两个核心组件,分别代表了Web应用程序(WAR)和二进制分发版。 Apache Axis2是Java世界中...

    axis2-1.6.2-bin

    描述中的“axis2-1.6.2-bin”进一步确认了这是Axis2的二进制发行版,意味着其中包含预编译的库和可执行文件,用户可以直接使用而无需进行编译过程。 标签“axis2-1.6.2”是对这个软件包的简要标识,方便搜索和分类...

    eclipse-plugin-and-axis2-1.6.2

    配置java web service开发环境时,需要保证axis2的版本和axis2-eclipse插件的版本要一致,否者可能导致莫名其妙的编译错误。...内含:axis2-1.6.2-war.zip 和axis2-eclipsse-codegen-plugin-1.6.2.zip

    axis2-1.6.2的war包与bin包以及使用文档

    在axis2-1.6.2的war包中,包含了Axis2运行时环境的所有必要组件,如Servlet、JSP等,使得你可以直接将此war文件部署到支持Java EE的Web服务器(如Tomcat、Jetty)上,快速启动一个运行在HTTP服务器上的Axis2实例。...

    axis2-eclipse-codegen-plugin-1.6.2+axis2-eclipse-service-plugin-1.6.2

    总的来说,"axis2-eclipse-codegen-plugin-1.6.2+axis2-eclipse-service-plugin-1.6.2"的组合为Eclipse用户提供了一套完整的Web服务开发解决方案,从生成代码到部署服务,全程都在熟悉的开发环境中完成,极大地提升...

    axis2-1.6.2插件

    2. **axis2-eclipse-service-plugin-1.6.2.zip**: 这是 Axis2 的 Eclipse 服务插件,它专注于帮助用户在 Eclipse 中管理和调试 Axis2 服务。其核心特性包括: - 在 Eclipse 工作台中可视化管理 Axis2 服务,包括...

Global site tag (gtag.js) - Google Analytics