2014-02-05 2 views
0

Мой веб-приложение на следующий адрес:Mule - Связь между веб-приложением и Mule ESB

http://localhost:8080/MyProject/page-obj.html

Я зову Mule Project, из веб-приложения (развернут на GlassFish), имеющий следующий URL на странице:

`<form action="http://localhost:28146/CallObject" method="post" id="objform">` 

Проект Mule выполняет что-то на удаленном сервере и возвращает Success.

Я хочу, чтобы перенаправить успех на другую страницу говорят

http://localhost:8080/MyProject/page-sucess.html

Когда редирект, я вижу http://localhost:28146/CallObject на адресной строке, вместо http://localhost:8080/MyProject/page-sucess.html. Во-вторых, я не могу правильно загрузить CSS и JS. Я думаю, что я не обрабатываю это правильно

Ниже Mule Flow используется:

`

<http:endpoint exchange-pattern="request-response" address="http://localhost:8080/MyProject/page-sucess.html" name="page" method="POST"/> 

    <flow name="Create_Work_Flow" doc:name="Create_Work_Flow"> 
     <http:inbound-endpoint exchange-pattern="request-response" address="http://localhost:28146/CallObject" contentType="text/html" doc:name="Request"> 
      <http:body-to-parameter-map-transformer doc:name="HTMLForm-Parameters-To-Mule"/> 
     </http:inbound-endpoint> 
     <logger level="INFO" doc:name="Form-Parameters" message="#[payload]" /> 

     <http:outbound-endpoint exchange-pattern="request-response" method="POST" doc:name="HTTP" ref="Page"> 
      <custom-transformer class="com.ExecuteWorkflow" doc:name="Call-CreateWorkflow"/> 
     </http:outbound-endpoint> 

    </flow>` 

ответ

1

иметь ваш Mule потока установить переадресацию заголовков в случае успеха, и браузер должен следовать перенаправлению

<flow name="Create_Work_Flow" doc:name="Create_Work_Flow"> 
    <http:inbound-endpoint exchange-pattern="request-response" address="http://localhost:28146/CallObject" contentType="text/html" doc:name="Request"> 
     <http:body-to-parameter-map-transformer doc:name="HTMLForm-Parameters-To-Mule"/> 
    </http:inbound-endpoint> 
    <logger level="INFO" doc:name="Form-Parameters" message="#[payload]" /> 
    <http:outbound-endpoint exchange-pattern="request-response" method="POST" doc:name="HTTP" ref="Page"> 
     <custom-transformer class="com.ExecuteWorkflow" doc:name="Call-CreateWorkflow"/> 
    </http:outbound-endpoint> 
    <set-property propertyName="http.status" value="301"/> 
    <set-property propertyName="Location" value="http://localhost:8080/MyProject/page- 
</flow> 
+0

Он бросает ошибку, что: свойство не имеет права быть ребенком элемент HTTP. – fatherazrael

+0

Я исправил свой пример. Вы должны использовать элемент set-property вместо свойства. – neildo

+0

Он работает без вокруг Custom Transformer. Я думаю, что я должен удалить это, поскольку я не мог видеть никакого использования этого – fatherazrael

Смежные вопросы