当前位置: 首页 > 面试题库 >

肥皂弹簧ws-如何定制 soapenv:服务器 至 一些错误代码,例如(一个数字)

凌嘉志
2023-03-14
问题内容

我正在使用soap spring ws创建一个soap Webservice,并且我已经成功创建了。现在我正在该soap
service中执行错误实现,并且我能够使用我创建的如下类进行操作

public class ServiceSoapFaultMappingExceptionResolver extends SoapFaultMappingExceptionResolver

在下面的覆盖函数中,

@Override
 protected void customizeFault(Object endpoint, Exception ex, SoapFault fault) {
//code for adding fault details

    Result result = fault.addFaultDetail().getResult();

            // marshal
            try {
                 JAXBContext.newInstance(ExceptionListType.class).createMarshaller().marshal(exceptionList, result);

}

我创建了定制的肥皂故障对象并返回了该对象。返回的自定义肥皂故障即将出现在detail标签内。所以我的错是这样的

<soapenv:Fault>
         <faultcode>soapenv:Server</faultcode>
         <faultstring>INVALID NUMBER</faultstring>
         <detail>
            <ns5:exceptionListType xmlns:ns5="http://wellpoint.com/esb/header/v2">
               <ns5:errorCount>1</ns5:errorCount>
               <ns5:Exception>
                  <ns5:UUID> 889c-6f73671534af</ns5:UUID>
                  <ns5:timestamp>09/04/2015 05:47:40</ns5:timestamp>
                  <ns5:node>mynode</ns5:node>
                  <ns5:process>JAVA</ns5:process>
                  <ns5:component>Unknown Component</ns5:component>
                  <ns5:code>5009</ns5:code>
                  <ns5:severity>FATAL</ns5:severity>
                  <ns5:message>An unexpected server error occurred: INVALID   NUMBER</ns5:message>
               </ns5:Exception>
            </ns5:exceptionListType>
         </detail>
      </soapenv:Fault>

现在我想做的是我有一个与上述错误相关的错误代码,它正在代码标签内。但是我需要将此错误代码放入此标签内

<faultcode>soapenv:Server</faultcode>

喜欢

<faultcode>5009</faultcode>

我有很多谷歌搜索,也没有运气。我知道,除了预定义的一组可用值之外,没有其他值不是一个好习惯,但是我的客户要求是这样。如果有人知道答案,请帮助我。非常感谢。


问题答案:

最后,我找到了解决问题的方法。在customFault方法中,我将代码如下所示。

    SoapFaultDefinition soapFaultDefinition = new SoapFaultDefinition();
    String ENVELOPE_NAMESPACE_URI = "http://schemas.xmlsoap.org/soap/envelope/";
    QName FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "5999, "e");
    //      soapFaultDefinition.setFaultStringOrReason("--" + ex);
    //      soapFaultDefinition.setLocale(Locale.ENGLISH);
    soapFaultDefinition.setFaultCode(FAULT_NAME);
    super.setDefaultFault(soapFaultDefinition);


 类似资料:
  • 问题内容: 我正在使用Java开发基于Soap的Web服务。谁能让我知道如何认证使用Web服务的客户端? 谢谢。 问题答案: 最好但最复杂的可能是带有各种身份验证方法的WS- Security。但是它是最复杂的,并且对企业环境有利。它允许您创建端到端身份验证,并且有很多选项。您可以在简单情况下使用Web服务安全性UsernameToken配置文件 我不知道您使用什么库,但是这是一篇不错的文章,介绍

  • 问题内容: 当我调用时,我获得了在应用程序上下文中定义的bean的实例。但是,当我再次调用(使用相同的名称)时,我又得到了相同的Bean实例。我了解在某些情况下(很多情况下)这是理想的选择,但是我如何告诉给我一个新的实例呢? Spring配置示例(通常…我省略了一些冗长的内容,但这应该可以理解): 示例Java: 当我运行此程序时,我得到如下信息: 请注意,这两个对象具有相同的OOID …因此它们

  • 我使用此代码登录到外部系统: 我收到一种LoginResponse,但它没有价值。 LoginResponse类型仅包含: 我需要从标头访问UserAuth值,但这不包含在LoginResponse对象中。 SOAP 响应为: 如何访问标题信息,在本例中是UserAuth值? 我是否需要使用更低层次的东西并从soap响应中解析所需的值? 更新: 我认为我需要使用SAAJ使用自定义SOAP请求(类似

  • 我应该创建一个与wss4j服务对话的soap客户端。。 预期的肥皂消息如下所示: 我有以下内容: 这个配置文件为: config有一个保存在Usb令牌中的证书引用,登录时会询问pin码: 服务接口具有: 但由此产生的soap是: 它还提供 InvalidSecurity处理时发现错误 因此,区别在于:; 必须理解="1",反对必须理解="true" SignatureMethod算法http://

  • 在我的项目中添加了Android证书后,Codename One服务器开始出现问题,然后通过询问Codename One支持,他们告诉我这可能与Proguard有关,所以在通过设置不建议使用哪个选项?因此,在执行此操作后,代码名One server可以正常构建,但我希望保持Proguard启用,因为它是推荐的,但当我保持启用代码名One server时,会出现构建错误,错误日志如下:https:/

  • 我曾尝试搜索如何制作 MMO,但总是找到相同的回复,这是不可能的或需要很多钱,但从未给出如何制作指南。 我想构建一些非常可扩展的东西,我目前关于如何构建 MMO 的想法如下: 组件: 登录服务器:客户端发送用户名 行动: 登录: 客户端发送用户名 < li >客户端在Position DB中检查他当前的位置和动作以及他附近的人(玩家和怪物),收到的数据还包括玩家的上次更新时间(装备或等级)。 <