情况是这样的,有一个已经完成的web service是用.net开发的,我们需要通过xfire作为client来调用此service。如果这个.net开发的Server端的service不进行安全配置,我们通过xfire的客户端调用其方法没有任何问题。但是如果这个Server端的service加上了Basic认证。这样我们就无法访问了。
下面是我的Client端代码:
String url = "http://192.168.11.11/Server/Service.aspx?WSDL";
//其实代码运行到这里就会失败,因为Server端加上了Basic认证
//当Client初始化的时候,会调用URL的openStream()方法,这时需要连接到服务器
//但是没有提供身份信息,即用户名称和密码,所以会失败。
Client client = new Client(new URL(url));
//挂上ClientAuthHandler,提供认证
//但是实际上跟就执行不到这里。因为Server端加上了Basic认证
client.addOutHandler(new ClientAuthenticationHandler());
Object[] results = client.invoke("serviceMethod", new Object[]{"testUsern","testUser Folder"});
后来,我使用HttpClient读入WSDL的定义,然后再使用Client,但是还是会出错,代码如下:
HttpClient client = new HttpClient();
client.getState().setCredentials(
new AuthScope("192.168.11.11", 80, "realm"),
new UsernamePasswordCredentials("admin", "admin")
);
String url = "http://192.168.11.11/Server/Service.aspx?WSDL";
GetMethod get = new GetMethod(url);
//执行get方法
int status = client.executeMethod( get );
//读入流
InputStream input = get.getResponseBodyAsStream();
//得到client实例。这里仍然会出错。
//因为需要读取wsdl的定义
//这个是Client实现的代码
//WSDLFactory.newInstance().newWSDLReader().readWSDL(null, src)
Client client = new Client(input ,null);
不知道大家有没有碰到这个问题?????
分享到:
相关推荐
XFire支持WS-I Basic Profile和多种WS-*规范,使得服务具有互操作性和可扩展性。 总之,通过Eclipse和XFire,开发者可以快速地构建和部署Web服务服务器,同时享受到强大的调试和测试支持。这种方式既适用于简单的...
在提供的文件名中,`xfireclient`可能是一个示例客户端程序,用于演示如何连接到由`xfireserver`运行的Web服务。`xfireserver`可能是服务器端的应用,包含了Web服务的实现和配置。这些文件可以帮助初学者快速理解...
XFire支持包括SOAP、WSDL、WS-I Basic Profile、WS-Addressing、WS-Security等在内的多项WebService标准,并且拥有高性能的SOAP栈。 XFire之所以得到广泛的关注,一方面是因为它对性能的优化,另一方面是因为其灵活...
### 使用XFire开发一个简单的Web服务 在Java领域中,Web服务是一种常用的技术手段,用于实现不同系统间的通信。XFire作为一个轻量级且功能强大的Web服务框架,它简化了开发过程,使得开发者能够更容易地创建和部署...
《xfire 1.2.6 server与cxf 1.2.6 client:构建高效服务交互》 在IT行业中,服务化已经成为企业系统架构的重要组成部分。xfire和CXF是两个广泛使用的Java Web服务框架,它们允许开发人员创建、发布和消费Web服务。...
它支持多种传输协议(如HTTP、SMTP等),并兼容各种Web服务规范,如SOAP、REST、WS-I Basic Profile、WS-Security等。Axis2使用了服务组件架构(SCA)和服务数据对象(SDO)等技术,使得构建复合应用和服务变得更加...
在开始使用XFire创建WebService项目之前,必须满足一定的系统需求,包括但不限于安装JDK(Java Development Kit)、MyEclipse IDE以及XFire框架的相关依赖库。此外,熟悉Java编程语言和WebService基本概念也是必要的...
1. **服务定义**:在XFire中,Web服务通常通过Java接口或者JAX-RPC的WS-I Basic Profile 1.1规范来定义。接口中的方法对应于Web服务的操作,通过注解(如@SOAPMethod)来标记。 2. **服务实现**:定义好服务接口后...
5. 创建客户端:使用XFire提供的Client API或Apache CXF等工具,生成客户端代码,用于调用服务。 在"XFireDemo"这个压缩包中,我们可以预期包含以下内容: - XFire的库文件:XFire运行所需的jar包。 - 示例服务...
- **添加XFire类库**:选择需要的XFire类库加入项目构建路径,如XFire Core Library和XFire HTTP Client Libraries。 2. **项目结构**:创建完成后,项目包含的标准组件和特殊配置元素,如XFire Servlet、services...
CXF的名字来源于"CXF = XFire + CXF",XFire是CXF的前身,而CXF则代表了"Client eXtended Framework"。在Apache CXF 2.5.4版本中,我们可以找到许多关键特性,这对于Java开发者来说是非常有用的。 1. **SOAP支持**...
- CXF 是"Client eXtension Framework"和"XFire"合并后的产物,旨在提供统一的、全面的Web服务实现。 - 它支持多种协议和规范,如SOAP、WS-*、JAX-RS等。 - CXF 提供了两种主要的开发方式:JAX-WS(Java API for ...
wsdl2java -b com.example.client -p com.example.client -d src/main/java http://localhost:8080/your-web-app/services/HelloWorld?wsdl ``` ##### 3.2 CXF会用到的注解 - **常用注解**:CXF 中常用的注解包括 ...