2016-07-29 10 views
0

TIBCO BW 개발을 처음 사용합니다. 응답 XML 파일을 작성해야 할 때 전문가 의견이 필요합니다. 다음은 시나리오입니다.HTTP 요청에서 들어오는 XML 파일을 구문 분석하고 Tibco에서 들어오는 XML 데이터를 기반으로 응답을 생성하는 방법 BW

HTTP 요청에서 XML 파일을 가져오고 들어오는 요청 XML 구조를 구문 분석 한 후 들어오는 요청에 대한 스텁 역할을하는 응답 문서를 만들어야합니다.

먼저 HTTP 요청에서 XML 파일을 수신하는 역할을하는 HTTP 수신자를 만듭니다. 그런 다음 들어오는 XML 문서를 구문 분석하기 위해 Parse XML을 사용했습니다. 정확하거나 잘못되었습니다. 이 활동 후에 Render XML 액티비티를 만들었으므로 멈춰 버렸지 만 Parse XML 액티비티로 파싱 된 들어오는 요청을 매핑 한 후에도 데이터를 가져 오지는 않는다. 테스트하는 동안 전체 XML을 가져 오는 것을 볼 수있다. 입력하지만 구문 분석에서 입력으로 출력을 매핑 한 후에도 NULL 값을 얻습니다. 따라서 오류가 발생합니다.

내가 잘못하고있는 부분을 알려주십시오. 응답으로 사용할 적절한 응답 XML 문서를 만들 수 있도록 들어오는 값을 잡는 데 다른 방법을 사용해야합니까?

+0

BW 프로젝트를 업로드 하시겠습니까? Render XML 액티비티의 입력 구조와 파스 XML 액티비티의 출력 또는 두 객체 간의 매핑으로 정의한 것에 차이가 있다고 가정합니다. – Seb

답변

0

일단 HTTP 요청을 수신하면 "Parse XML"활동을 사용하여 HTTP Post Data를 구문 분석 했으므로 "Mapper"를 사용하여 입력 (XML로 수신 및 구문 분석 됨)을 XML 출력에 매핑하는 것이 좋습니다 개요. 이 출력은 나중에 쉽게 반환 될 수 있습니다. 예를 들어

,

내 HTTP 클라이언트가 저에게이 enter image description here

같은 XML을 보내 그리고이 (가)의 추가와 b enter image description here

과정에이 같은 XML을 반환하려면 : Process

그리고 매퍼

enter image description here

그리고 결국,이 같은 XML HTTP 응답을 보낼 수 있습니다

enter image description here


EDIT (코멘트) : 을하는 과정에서 접두사 네임 스페이스를 편집 할 수 있습니다. 프로세스 (왼손 메뉴)를 클릭해야하며 아래쪽에는 "네임 스페이스 레지스트리"버튼이 있습니다. enter image description here 클릭하면 접두사 이름을 변경할 수 있습니다. enter image description here

그러나 이러한 종류의 조작으로 인해 Tibco BW에서 모든 것이 XML 기반이므로이 프로세스의 기존 매핑을 손상시킬 수 있습니다.

+0

문제를 해결하는 방법에 대한 자세한 설명은 @gjeanmart에 감사드립니다. HTTP Pallete. 나는 급하게 비트를 썼기 때문에 SOAP Pallete를 사용하여 요청을 받고 SoapSendReply가 응답을 보내도록 코드를 전송했습니다. 네임 스페이스를 제외한 모든 것이 괜찮 으면서 SOAP-ENV 접두사를 soapenv 접두사로 바꾸는 방법과 ns0 : username에서 username으로 접두사를 추가하는 방법을 알고 있습니까? –

+0

프로세스에서 접두사 네임 스페이스를 편집합니다. 프로세스 (왼쪽 메뉴)를 클릭해야하며 아래쪽에는 "네임 스페이스 레지스트리"라는 버튼이 있습니다. 클릭하면 접두사 이름을 변경할 수 있습니다. Tibco BW에서 모든 것이 XML 기반이기 때문에 이러한 종류의 조작으로 인해 기존 매핑이 깨질 수 있습니다. [자세한 내용으로 답변을 편집했습니다] –

+0

안녕하세요. @ gjeanmart, 응답 해 주셔서 감사합니다. 나는 지금 최후의 수단에 갇혔다, 어디에서 soapsendreply의 내용 - 타입. 여기 mime contenttype을 text/xml로 바 꾸었습니다. 응답을받는 응용 프로그램은 text/html로 수신한다고 말하지만 soapUI에서는 text/xml로 올바른 응답을 얻습니다. HTTP/1.1 200 OK [\ r] [\ n] " "서버 : Apache-Coyote/1.1 [\ n] " "Content-Type : multipart/- –