SimpleXML을 사용하여 SOAP 응답을 역 직렬화 할 수 없습니까?

야간 고정

로컬 장치와의 UPnP 연결을위한 라이브러리에서 작업 중입니다. 작업 중 하나에서 응답을 구문 분석하려고 할 때 다음 예외가 발생합니다.

문제: org.simpleframework.xml.core.ValueRequiredException: Unable to satisfy @org.simpleframework.xml.Element(data=false, name=s:Body, required=true, type=class com.stuff.AssignedRolesResponseBody) on field 'responseBody' private com.stuff.AssignedRolesResponseBody com.stuff.AssignedRolesResponseEnvelope.responseBody for class com.stuff.AssignedRolesResponseEnvelope at line 1

파싱하려는 원시 응답 :

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <s:Body>
        <u:GetAssignedRolesResponse xmlns:u="urn:schemas-upnp-org:service:DeviceProtection:1">
            <RoleList>{something_here?}</RoleList>
        </u:GetAssignedRolesResponse>
    </s:Body>
</s:Envelope>

다음은 내 POJO입니다.

ResponseEnvelope :

@Root(name = "s:Envelope")
@NamespaceList({
        @Namespace(prefix = "s", reference = "http://schemas.xmlsoap.org/soap/envelope/")
})
public class AssignedRolesResponseEnvelope extends XMLBaseResponse {

  @Element(name = "s:Body", type = AssignedRolesResponseBody.class)//I tried without specifiying the type here - no difference
  private AssignedRolesResponseBody responseBody;

  public AssignedRolesResponseBody getResponseBody() {
    return responseBody;
  }

  public void setResponseBody(AssignedRolesResponseBody responseBody) {
    this.responseBody = responseBody;
  }
}

신체:

public class AssignedRolesResponseBody {

  @Element(name = "u:GetAssignedRolesResponse")
  @NamespaceList({
          @Namespace(prefix = "u", reference = "urn:schemas-upnp-org:service:DeviceProtection:1")
  })
  private AssignedRolesResponseAction action;

  public AssignedRolesResponseAction getAction() {
    return action;
  }

  public void setAction(AssignedRolesResponseAction action) {
    this.action = action;
  }
}

동작:

public class AssignedRolesResponseAction {

  @Element(name = "RoleList")
  List<String> roleList;

  public List<String> getRoleList() {
    return roleList;
  }

  public void setRoleList(List<String> roleList) {
    this.roleList = roleList;
  }
}

어떤 입력이라도 대단히 감사합니다.

야간 고정

내 질문에 답하겠습니다. 이 문제를 해결하기 위해 세 가지 사항을 변경했습니다.

1). 다음 encodyngStyle과 같이 매핑했습니다 .

  @Attribute(name = "encodingStyle")
  public String encodingStyle;

2). 접두사없이 다른 엔티티 매핑했습니다 .

  @Element(name = "Body")
  private AssignedRolesResponseBody responseBody;

  @Element(name = "GetAssignedRolesResponse")
  private AssignedRolesResponseAction action;

삼). Action루트매핑했습니다 .

@Root(name = "u:GetAssignedRolesResponse")
@Namespace(reference = "urn:schemas-upnp-org:service:DeviceProtection:1", prefix = "u")
public class AssignedRolesResponseAction {}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JSON 응답을 역 직렬화 할 수 없습니다.

분류에서Dev

Zoho Docs API 응답을 역 직렬화 할 수 없습니다.

분류에서Dev

SwiftyJSON을 사용하여 역 직렬화 할 변수로 JSON 응답 저장

분류에서Dev

servicestack MsgPack 클라이언트를 사용할 때 서비스 응답을 역 직렬화 할 수 없습니다.

분류에서Dev

listview에서 json 응답을 역 직렬화 할 수 없습니다.

분류에서Dev

Magento 2 SOAP API에서 SOAP 응답을 역 직렬화 할 수 없음-응답의 XML 네임 스페이스와 서비스 참조 WSDL이 일치하지 않습니다.

분류에서Dev

현재 JSON 개체를 역 직렬화 할 수 없습니다. 그룹 열을 사용하여 현재 JSON 개체를 역 직렬화 할 수 없습니다.

분류에서Dev

SOAP 응답을 비 정렬화할 수 없습니다.

분류에서Dev

JSON에서 사전을 역 직렬화 할 수 없습니다.

분류에서Dev

응답이 원시 문자열 인 경우 Restsharp 응답을 역 직렬화 할 수 없습니다.

분류에서Dev

Retrofit을 사용하여 중첩 된 JSON을 역 직렬화 할 수 없음 (Android)

분류에서Dev

직렬화 후 저지로 json을 역 직렬화 할 수 없습니까?

분류에서Dev

protobuf-net을 사용하여 C #에서 역 직렬화 할 수 없음

분류에서Dev

직렬화 및 역 직렬화는 사전을 백업 필드로 사용할 수 없습니다.

분류에서Dev

jackson @JsonTypeInfo 주석을 사용하여 객체를 원래 유형으로 역 직렬화 할 수 없습니다.

분류에서Dev

VB.net을 사용하여 Json이 Youtube 데이터를 역 직렬화 할 수 없습니다.

분류에서Dev

restsharp를 사용하여이 JSON 형식을 어떻게 역 직렬화 할 수 있습니까? (씨#)

분류에서Dev

튜플을 역 직렬화 할 수 없습니다.

분류에서Dev

CouchDB에서 Json을 역 직렬화 할 수 없습니다.

분류에서Dev

C # MVC는 튜플을 역 직렬화 할 수 없습니다.

분류에서Dev

JSON을 역 직렬화 할 수 없습니다.

분류에서Dev

xml을 List <T>로 역 직렬화 할 수 없습니다.

분류에서Dev

json을 제대로 역 직렬화 할 수 없습니다.

분류에서Dev

json 배열을 역 직렬화 할 수 없습니다.

분류에서Dev

JSon을 C #으로 역 직렬화 할 수 없습니다.

분류에서Dev

RestSharp는 내 JSON 응답을 제대로 자동 역 직렬화 할 수 없지만 JSON.NET은 할 수 있습니다. 이유는 무엇입니까?

분류에서Dev

System.Text.Json을 사용하여 DateTime, Guid 또는 Enum을 역 직렬화 할 수 없음

분류에서Dev

C # Newtonsoft.json을 사용하여 단 하나의 속성 (루트를 찾을 수 없음)에 대한 Json 응답을 역 직렬화합니다.

분류에서Dev

Web API는 Javascript Date.toISOString ()을 역 직렬화 할 수 없습니까?

Related 관련 기사

  1. 1

    JSON 응답을 역 직렬화 할 수 없습니다.

  2. 2

    Zoho Docs API 응답을 역 직렬화 할 수 없습니다.

  3. 3

    SwiftyJSON을 사용하여 역 직렬화 할 변수로 JSON 응답 저장

  4. 4

    servicestack MsgPack 클라이언트를 사용할 때 서비스 응답을 역 직렬화 할 수 없습니다.

  5. 5

    listview에서 json 응답을 역 직렬화 할 수 없습니다.

  6. 6

    Magento 2 SOAP API에서 SOAP 응답을 역 직렬화 할 수 없음-응답의 XML 네임 스페이스와 서비스 참조 WSDL이 일치하지 않습니다.

  7. 7

    현재 JSON 개체를 역 직렬화 할 수 없습니다. 그룹 열을 사용하여 현재 JSON 개체를 역 직렬화 할 수 없습니다.

  8. 8

    SOAP 응답을 비 정렬화할 수 없습니다.

  9. 9

    JSON에서 사전을 역 직렬화 할 수 없습니다.

  10. 10

    응답이 원시 문자열 인 경우 Restsharp 응답을 역 직렬화 할 수 없습니다.

  11. 11

    Retrofit을 사용하여 중첩 된 JSON을 역 직렬화 할 수 없음 (Android)

  12. 12

    직렬화 후 저지로 json을 역 직렬화 할 수 없습니까?

  13. 13

    protobuf-net을 사용하여 C #에서 역 직렬화 할 수 없음

  14. 14

    직렬화 및 역 직렬화는 사전을 백업 필드로 사용할 수 없습니다.

  15. 15

    jackson @JsonTypeInfo 주석을 사용하여 객체를 원래 유형으로 역 직렬화 할 수 없습니다.

  16. 16

    VB.net을 사용하여 Json이 Youtube 데이터를 역 직렬화 할 수 없습니다.

  17. 17

    restsharp를 사용하여이 JSON 형식을 어떻게 역 직렬화 할 수 있습니까? (씨#)

  18. 18

    튜플을 역 직렬화 할 수 없습니다.

  19. 19

    CouchDB에서 Json을 역 직렬화 할 수 없습니다.

  20. 20

    C # MVC는 튜플을 역 직렬화 할 수 없습니다.

  21. 21

    JSON을 역 직렬화 할 수 없습니다.

  22. 22

    xml을 List <T>로 역 직렬화 할 수 없습니다.

  23. 23

    json을 제대로 역 직렬화 할 수 없습니다.

  24. 24

    json 배열을 역 직렬화 할 수 없습니다.

  25. 25

    JSon을 C #으로 역 직렬화 할 수 없습니다.

  26. 26

    RestSharp는 내 JSON 응답을 제대로 자동 역 직렬화 할 수 없지만 JSON.NET은 할 수 있습니다. 이유는 무엇입니까?

  27. 27

    System.Text.Json을 사용하여 DateTime, Guid 또는 Enum을 역 직렬화 할 수 없음

  28. 28

    C # Newtonsoft.json을 사용하여 단 하나의 속성 (루트를 찾을 수 없음)에 대한 Json 응답을 역 직렬화합니다.

  29. 29

    Web API는 Javascript Date.toISOString ()을 역 직렬화 할 수 없습니까?

뜨겁다태그

보관