0 0

xfire 使用 SIGNATURE报如下错误,而Encrypt没有问题请问为什么10

Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: WSS4JInHandler: security processing failed
org.codehaus.xfire.fault.XFireFault: WSS4JInHandler: security processing failed
at org.codehaus.xfire.fault.Soap11FaultSerializer.readMessage(Soap11FaultSerializer.java:34)
at org.codehaus.xfire.fault.SoapFaultSerializer.readMessage(SoapFaultSerializer.java:29)
at org.codehaus.xfire.soap.handler.ReadHeadersHandler.checkForFault(ReadHeadersHandler.java:111)
at org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:67)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Client.onReceive(Client.java:406)
at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:140)
at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:117)
at org.codehaus.xfire.client.Client.invoke(Client.java:336)
at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:78)
at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
at $Proxy0.sayHello(Unknown Source)
at com.neusoft.xfire.test.TTTest.<init>(TTTest.java:59)
at com.neusoft.xfire.test.TTTest.main(TTTest.java:64)

配置文件
<service>
    <name>HelloWorldService</name>
    <serviceClass>com.neusoft.xfire.test.HelloWorldServiceImp</serviceClass>

    <inHandlers>
      <handler handlerClass="org.codehaus.xfire.util.dom.DOMInHandler" />
      <bean class="org.codehaus.xfire.security.wss4j.WSS4JInHandler" xmlns="">
        <property name="properties">
          <props>
            <prop key="action">Signature</prop>
            <prop key="signaturePropFile">com/neusoft/xfire/test/insecurity.properties</prop>
            <prop key="passwordCallbackClass">com.neusoft.xfire.test.PasswordHandler</prop>
          </props>
        </property>
      </bean>
    </inHandlers>
  </service>
客户端调用代码
service=new ObjectServiceFactory().create(HelloWorldService.class,
                "HelloWorldService",
                namespance,
                null);
        try {
            bookservice=(HelloWorldService) new XFireProxyFactory().create(service, SERVICE_URL);
            client = ((XFireProxy) Proxy.getInvocationHandler(bookservice)).getClient();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
       
        wsOut = new WSS4JOutHandler();       
        wsOut.setProperty(WSHandlerConstants.SIG_PROP_FILE, "com/neusoft/xfire/test/outsecurity.properties");
      //  wsOut.setProperty(WSHandlerConstants.ENC_PROP_FILE, "com/neusoft/xfire/test/outsecurity.properties");
        wsOut.setProperty(WSHandlerConstants.USER, "ws_security");
        //wsOut.setProperty(WSHandlerConstants.p, "client-344-839");
        //wsOut.setProperty("password", "keypassword");
       // System.out.println(WSConstants.PASSWORD_TEXT);
      
        wsOut.setProperty(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PASSWORD_TEXT);
        wsOut.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS, PasswordHandler.class.getName());
        wsOut.setProperty(WSHandlerConstants.SIG_KEY_ID,"IssuerSerial");       
       
        client.addOutHandler(new DOMOutHandler());
        client.addOutHandler(wsOut);
        wsOut.setProperty(WSHandlerConstants.ACTION,WSHandlerConstants.SIGNATURE);
        // String actions =WSHandlerConstants.SIGNATURE; 
        //wsOut.setProperty(WSHandlerConstants.TTL_TIMESTAMP,"30");
       // wsOut.setProperty(WSHandlerConstants.ACTION,  actions);
       
       //System.out.println(""+bookservice.sayHello());
        bookservice.sayHello();
        client.close();
SOA 
2008年7月09日 15:42
目前还没有答案

相关推荐

    Xfire使用说明文档

    接着,添加一个Servlet定义,名为`xfire`,使用`XFireSpringServlet`类,并映射URL模式为`/services/*`。这样,所有以`/services/`开头的请求都会被Xfire处理。 4. 编写Service接口:按照JAX-WS规范,你可以通过...

    Xfire调用webservice无法传递参数问题

    标题“Xfire调用WebService无法传递参数问题”暗示了开发者在尝试使用Xfire框架时遇到了参数无法正常传递到Web服务的情况。这可能涉及到多个方面,如编码问题、序列化错误、类型不匹配或者配置不正确等。以下是一些...

    java使用XFire调用webService接口

    "Java 使用 XFire 调用 webService 接口" 在本文中,我们将学习如何使用 XFire 框架在 Java 中调用 webService 接口。XFIRE 是一个基于 Java 的开源框架,用于简化 Web 服务的开发和集成。下面,我们将通过一个简单...

    xfire的使用详解

    &lt;param-value&gt;classpath:spring/app.xml,classpath:org/codehaus/xfire/spring/xfire.xml &lt;!--配置xfire ws--&gt; &lt;servlet-name&gt;XFireServlet &lt;servlet-class&gt;org.codehaus.xfire.spring....

    xfire全部jar包

    **xfire全部jar包**是针对一款名为Xfire的软件的开发库集合,它包含了所有必要的JAR(Java Archive)文件,这些文件是Java编程语言中的可执行代码库。Xfire是一款历史悠久的在线游戏社区软件,它允许玩家跟踪其朋友...

    Xfire调用webservice无法接收到参数问题解决

    1. **XML序列化与反序列化问题**:Xfire需要将Java对象转换为XML格式(序列化)发送给服务端,服务端再将接收到的XML还原为Java对象(反序列化)。如果双方使用的数据类型不匹配或XML格式不正确,可能会导致参数丢失...

    使用XFire发布WebService

    【标题】: 使用XFire发布WebService 在Web服务的世界中,XFire是一个强大的开源框架,它使得开发和部署Web服务变得简单。XFire是Apache CXF的前身,它提供了全面的WS-*支持,包括SOAP、WSDL、UDDI、MTOM等标准,...

    xfire 使用方法

    开发者在开发过程中可能会遇到各种异常,比如网络异常、数据格式错误、协议不匹配等,XFire对这些异常都有明确的处理机制,有助于开发者快速定位问题并进行解决。 总体来说,XFire是一个功能强大、灵活且易于集成的...

    Java使用XFire调用WebService接口

    6. **异常处理**:在调用Web服务时,可能会遇到网络问题或服务端错误,XFire会将这些异常封装成特定的Java异常,方便开发者捕获并处理。 7. **日志和调试**:为了调试和优化,XFire支持日志记录,开发者可以通过...

    xfire 使用外部类、返回collection及输入数组参数示例

    在这个“xfire 使用外部类、返回collection及输入数组参数示例”中,我们将深入探讨如何利用Xfire来处理复杂的参数类型,包括外部类引用、集合(Collection)返回以及数组作为输入参数。 ### 1. 外部类的使用 在...

    Xfire API,Xfire帮助文档

    Xfire API 是一款专为游戏社区设计的接口,它允许开发者构建与Xfire服务交互的应用程序,从而增强玩家的游戏体验并提供社交功能。Xfire API 主要围绕Web服务概念,这意味着它通过网络提供一系列功能,使得第三方...

    xfire依赖jar包

    以上这些jar包共同构成了xfire框架的基础,它们相互协作,为开发者提供了强大而全面的Web服务开发环境。在使用xfire时,需要根据项目需求选择合适的依赖包,并正确配置到项目的类路径中,以确保xfire能够正常工作。...

    xfire客户端生成

    XFire,全称为XFire SOAP RPC,它提供了一种简单的方式来创建和消费Web服务。本文将深入探讨XFire客户端的生成以及如何利用它来自动创建Java代码以便调用Web服务。 ### XFire简介 XFire是由Apache CXF项目前身的一...

    XFire1.2使用例子

    《XFire1.2使用详解》 XFire是一款在Java平台上用于构建分布式应用程序的服务框架,它为开发人员提供了丰富的服务发现、服务注册、服务通信等功能。这篇博客将深入探讨XFire1.2的使用,帮助开发者更好地理解和应用...

    在 MyEclipse 上使用 XFire 编写 Web Service

    在 MyEclipse 上使用 XFire 编写 Web Service.rar在 MyEclipse 上使用 XFire 编写 Web Service.rar在 MyEclipse 上使用 XFire 编写 Web Service

    xFire的详细使用与实例

    通过使用Java注解,xFire使得开发者能够快速地将Java类转换为Web服务,反之亦然。这极大地简化了Web服务的开发过程,降低了学习曲线。 在使用xFire时,首先要进行基本的环境配置,包括引入必要的库文件和设置相关的...

    java 调用webservice使用HttpClient和XFire两种方式

    而使用XFire,可以通过配置和服务接口的方法注解来处理。因此,在选择工具时,需要根据项目规模、复杂性和团队熟悉度来权衡。 总结起来,Java调用Web Service的方式多样,HttpClient和XFire是其中常见的两个选择。...

    xfire

    xfire是一款历史悠久的在线游戏平台,它在2004年由GameSpy Industries开发并发布,主要功能是为玩家提供即时通讯、好友列表、游戏内聊天和游戏统计等功能,旨在增强玩家的游戏体验。xfire 1.26是该平台的一个特定...

    使用xfire发布的webservice完整实例

    Xfire简化了开发过程,使得开发者可以专注于业务逻辑,而不是底层的网络通信细节。在Web服务的世界里,SOAP(Simple Object Access Protocol)是一种用于交换结构化信息的标准协议,常用于构建分布式系统,允许不同...

    使用xfire实现webservice实例

    总之,XFire为Java开发者提供了一个强大的工具,简化了Web服务的开发和部署。虽然现在CXF已经成为更主流的选择,但XFire的历史和功能仍然值得我们去学习和了解,特别是对于理解Web服务的基础概念和工作原理。

Global site tag (gtag.js) - Google Analytics