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.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, 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_...
- **生产环境**:如果要在生产环境中部署Web服务,Axis2-1.6.2-war更合适,因为它可以直接部署到现有的Web服务器,与其它Web应用共存。 4. **使用与配置** - 使用这两个版本的Axis2都需要对Java和Web服务有一定的...
标题中的"axis2-1.6.2-war.zip"指的是Apache Axis2的1.6.2版本的Web服务部署包,以WAR(Web ARchive)格式打包。Apache Axis2是一个强大且灵活的Web服务引擎,它允许开发人员创建、部署和管理Web服务。这个版本的...
标题 "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"指的是两个与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"表明这是一个包含不同版本的Apache Axis2服务框架的集合。Axis2是Apache软件基金会开发的一个Web服务引擎,它主要用于创建和部署Web服务以及处理SOAP消息...
标题中的"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 依赖集合,经过测试,可以确保基本功能的正常运行,无需额外的 jar 包。 描述中的 "自己亲自测试过!可以直接运行,没有问题" ...
该下载包含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"指的是Apache Axis2的不同版本发布形式,这两个是Apache Axis2 Web服务框架的两个核心组件,分别代表了Web应用程序(WAR)和二进制分发版。 Apache Axis2是Java世界中...
描述中的“axis2-1.6.2-bin”进一步确认了这是Axis2的二进制发行版,意味着其中包含预编译的库和可执行文件,用户可以直接使用而无需进行编译过程。 标签“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包中,包含了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"的组合为Eclipse用户提供了一套完整的Web服务开发解决方案,从生成代码到部署服务,全程都在熟悉的开发环境中完成,极大地提升...
2. **axis2-eclipse-service-plugin-1.6.2.zip**: 这是 Axis2 的 Eclipse 服务插件,它专注于帮助用户在 Eclipse 中管理和调试 Axis2 服务。其核心特性包括: - 在 Eclipse 工作台中可视化管理 Axis2 服务,包括...