簡體   English   中英

uleesb出站https無效的內容類型

[英]mule esb outbound https invalid content-type

我正在使用Mule 3.4.0,並且正在制作一個流程,該流程使用HTTPS出站終結點在JIRA服務器上調用一些RESTful API終結點。 我遇到問題,因為Mule由於某種原因發送了Content-Type標頭值,該值在JIRA中導致異常。 從JIRA堆棧跟蹤來看,Mule正在發送以下消息:

application / json,application / json; charset = UTF-8

JIRA使用的是Jersey,Jersey無法解析該Content-Type值。 這是JIRA返回的堆棧跟蹤的一部分:

引起原因:java.lang.IllegalArgumentException:解析媒體類型' application / json,application / json; charset = UTF-8'時出錯。 在com.sun.jersey.core.impl.provider.header.MediaTypeProvider.fromString(MediaTypeProvider.java:79)在com.sun.jersey.core.impl.provider.header.MediaTypeProvider.fromString(MediaTypeProvider.java:53)在com.sun.jersey.server.impl.model.HttpHelper.getContentType(HttpHelper.java:89)處的javax.ws.rs.core.MediaType.valueOf(MediaType.java:119)... 157以上原因: java.text.ParseException:預期的分隔符&#39 ;;' 代替',' 在com.sun.jersey.core.header.reader.HttpHeaderReader.nextSeparator(HttpHeaderReader.java:117)在com.sun.jersey.core.header.reader.HttpHeaderReader.readParameters(HttpHeaderReader.java:239)在com.sun .jersey.core.impl.provider.header.MediaTypeProvider.valueOf(MediaTypeProvider.java:97)位於com.sun.jersey.core.impl.provider.header.MediaTypeProvider.fromString(MediaTypeProvider.java:77)

我希望能夠強制發送特定的Content-Type值,但是我不知道該怎么做。 看來Mule會根據多種因素自動建立Content-Type值:

http://www.mulesoft.org/documentation/display/current/HTTP+Transport+Reference

如果端點已明確設置了編碼,請使用該編碼;否則,請從消息的屬性Content-Type中獲取該編碼。如果未設置這些編碼,請使用Mule Context的配置默認值。 對於Content-Type,發送郵件的屬性Content-Type,但設置實際的編碼。

因此,我認為它正在使用入站屬性Content-Type,但是由於這是入站屬性,所以我認為我無法在流程中修改/刪除該屬性。 我對修改/刪除Content-Type屬性的嘗試無效。 我只能修改/刪除出站Content-Type屬性,這似乎對我的出站HTTP請求沒有幫助。

任何有關如何控制Content-Type值或對其進行修復的信息都將不勝感激。

我花了更多時間使用調試和斷點,發現在第一個HTTPS出站終結點之后,將“ Content-Type” 變量不是入站或出站屬性 )設置為“ application / json”。 我不知道為什么會這樣。 我沒有在文檔中看到任何有關HTTP傳輸或HTTP端點的信息。 如果有人可以指出有關正在進行的事情的文檔,那就太好了。

作為實驗,在下一個HTTPS出站終結點之前,我添加了一個變量轉換器以刪除“ Content-Type”變量。 那解決了問題!

因此,看來Mule出於某種原因將“ Content-Type” 變量與我在HTTP出站終結點中指定的Content-Type值組合在一起,從而導致“ application / json,application / json; charset = UTF-8” 。

我不得不將其放在每個HTTPS出站端點之后,以繼續刪除變量:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM