Так что это заставляет меня задуматься. У меня есть интеграция Mule с несколькими потоками в ней, и все они работают хорошо. За исключением последнего. Если я заканчиваю это в конечной точке файла, он работает так, как ожидалось. Но если я заканчиваю его в моем WS POST-сервисе. У меня возникает ошибка, жалующаяся на несколько контекстов JAXB. У меня есть несколько контекстов JAXB, но, как сказано, они отлично работают, если я не пытаюсь опубликовать свой JSON для этой службы REST. И почему-то я не вижу, что моя конечная точка HTTP имеет какое-либо отношение к JAXB, так что я думаю, что это ошибочная ошибка? Но тогда, что не так с моей конечной точкой HTTP, я использую ее как входящую в другие потоки, а также пытаюсь создать совершенно новую для этого конкретного потока, но все же это ворчание в JAXB.Mule RegistrationException
<http:request-config name="WS" host="127.0.0.1" port="81" doc:name="HTTP Request Configuration" basePath="WSService"/>
<http:request-config name="MQService" host="127.0.0.1" port="82" doc:name="HTTP Request Configuration" />
<mulexml:jaxb-context name="JAXB_A" packageNames="se.razorlib.SystemAProduct" doc:name="JAXB Context"/>
<mulexml:jaxb-context name="JAXB_B" packageNames="se.razorlib.SystemAPurchase" doc:name="JAXB Context"/>
<mulexml:jaxb-context name="JAXB_C" packageNames="se.razorlib.SystemAOrder" doc:name="JAXB Context"/>
<context:property-placeholder location="razorlib.properties"/>
<flow name="ProductToSystemA">
....
<http:request config-ref="WS" path="Product/REST/GetProduct/{id}/{index}" method="GET" doc:name="WS">
<http:request-builder>
<http:uri-param paramName="id" value="${WS.id}"/>
<http:uri-param paramName="index" value="1"/>
</http:request-builder>
</http:request>
.....
</flow>
<flow name="PurchaseToSystemA">
.....
</flow>
.....
и этот конкретный поток
<flow name="PurchaseDeliver">
<file:inbound-endpoint path="C:\temp\fileIn" responseTimeout="10000" doc:name="FileIn"/>
<mulexml:jaxb-xml-to-object-transformer returnClass="se.razorlib.SystemAPurchase.Header" encoding="UTF-16" jaxbContext-ref="JAXB_B" doc:name="XML to JAXB Object"/>
<custom-transformer returnClass="java.util.List" encoding="utf-16" class="se.razorlib.Transformer.Map2ZZPurchase" doc:name="Map2ZZ"/>
<json:object-to-json-transformer encoding="UTF-16" doc:name="Object to JSON"/>
<logger message="'Payload ' #[payload]" level="INFO" doc:name="Logger"/>
<http:request config-ref="WS" path="PurchaseSvc/REST/Deliver/{id}" method="POST" doc:name="WSDeliver">
<http:request-builder>
<http:uri-param paramName="id" value="${WS.id}"/>
</http:request-builder>
</http:request>
<!-- <file:outbound-endpoint path="C:\temp\fileOut" responseTimeout="10000" doc:name="File" outputPattern="inkop2ZZ-#[function:dateStamp].json" mimeType="text/json" encoding="UTF-8"/> -->
<catch-exception-strategy doc:name="Catch Exception Strategy">
<logger message="Oh no!!" level="INFO" doc:name="Logger"/>
<file:outbound-endpoint path="C:\temp\fileError" responseTimeout="10000" doc:name="File" outputPattern="error-inkop2ZZ-#[function:dateStamp].xml" mimeType="text/xml" encoding="UTF-8"/>
</catch-exception-strategy>
</flow>
Ошибка я получаю это:
Корень стека исключений трассировки: орг .mule.api.registry.RegistrationException: более одного объекта класса типа jav ax.xml.bind.JAXBContext зарегистрирован, но ожидается только один.
С уважением
Ваш сценарий кажется странным. Но ошибка как-то указывает на ответ ниже. Проверьте, работает ли это или нет? – star